在scrollview中嵌套listview或者gridview时

如果listview或者gridview的高度时wrap-content会导致两者只显示一行多一点

原因:

listview和gridview都继承于scrollview 两个scrollview嵌套会导致高度有问题。

核心解决方案:

重写listview和gridview的onMeasure方法 如下:

package come.cake.customview;import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView;/*** Created by apple on 16/1/20.*/
public class MyListView extends ListView {public MyListView(Context context, AttributeSet attrs) {super(context, attrs);}public MyListView(Context context) {super(context);}public MyListView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_MOVE) {return true;//禁止listview进行滑动}return super.dispatchTouchEvent(ev);}
}
package come.cake.customview;import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.GridView;public class MyGridView extends GridView {public MyGridView(Context context, AttributeSet attrs) {super(context, attrs);}public MyGridView(Context context) {super(context);}public MyGridView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_MOVE) {return true;//禁止Gridview进行滑动}return super.dispatchTouchEvent(ev);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}
}gridView.setFocusable(false);
//scrollview内部嵌套gridview防止从底部显示,加上这行代码就会从头部显示

转载于:https://blog.51cto.com/czz405264771/1749003

scrollview中嵌套listview产生冲突问题相关推荐

  1. ScrollView中嵌套ListView

    放置比较少的ListView组件效果图:                         Item布局文件  list_view_item.xml  布局文件的内容: <RelativeLayo ...

  2. Android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动

    有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个 scrollview 被向下滑动直到ListV ...

  3. ScrollView中嵌套ListView控件,数据无法显示完全

    为什么80%的码农都做不了架构师?>>>    public void setListViewHeightBasedOnChildren(ListView listView) { / ...

  4. 【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView

    一 背景概述: ScrollView里嵌套ListView,一直是Android开发者(反正至少是我们组)最讨厌的设计之一,完美打破ListView(RecyclerView)的复用机制,成功的将Na ...

  5. 仿Android GridView以解决ScrollView中嵌套自带GridView滚动条冲突问题

    有时候做Android开发难免会遇到ScrollView中嵌套GridView现象,一旦要他们结合使用就会出现一堆问题,这里考虑使用LinearLayout仿GridView去解决一下这个问题! 1. ...

  6. PullToRefreshListView中嵌套ViewPager滑动冲突的解决

    PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部 ...

  7. ScrollView中嵌套WebView底部留白问题解决

    ScrollView中嵌套WebView出现底部滑动留有大面积空白问题网络上有各种解决方案. 本博文基本上能终结该问题的出现,下面是网络上解决步骤: 1:第一种解决方案也是最多人提到的,在加载完成后重 ...

  8. [转载]Android: 如何实现ScrollView中含有ListView?

    原文地址:Android: 如何实现ScrollView中含有ListView?作者:mailofzxf ListView本身就含有ScrollView,因此把ListView放到ScrollView ...

  9. ScrollView中嵌入Listview,当item高度不一样的时候,item展示不全问题

    首先在scrollview中嵌入listview,我们需要动态设置listview的高度,否则只会展示一行. public void fixListViewHeight(ListView listVi ...

最新文章

  1. SpringBoot监听redis过期key
  2. CentOS6.X 系统安装图文教程,超详细
  3. Javascript综合应用小案例(续)
  4. 单例模式(线程安全+延迟加载)
  5. 关于CSS的碎片学习
  6. Linux下计算进程的CPU占用和内存占用的编程方法[转]
  7. [NOIP2016]愤怒的小鸟
  8. java 商品库存修改
  9. BZOJ1597 [Usaco2008 Mar]土地购买
  10. RW文档翻译学习——RW-BT-SW-COMMON-FS
  11. 计算机专业和机械自动化哪个好,自动化和机械设计制造及其自动化有哪些区别?选哪个好呢?...
  12. 新春蓝牙耳机怎么选?五年发烧友吐血盘点,高性能蓝牙耳机推荐
  13. C++complex复数类
  14. matlab怎么看输出电压纹波,Boost变换器的能量传输模式和输出纹波电压分析.pdf
  15. EXCEL VLOOKUP用中文匹配出错
  16. SQL Server求解最近多少销售记录的销售额占比总销售额的指定比例
  17. 学习GestureDetectorCompat,实现卡片左右滑动消失效果
  18. 武汉大学计算机学院 优秀夏令营,武汉大学计算机学院2014年优秀大学生暑期夏令营通知...
  19. 国内从事视觉领域的公司
  20. 键盘与ASCII码对应表

热门文章

  1. C++_布尔类型、枚举类型
  2. 关于page object(PO)模型的介绍
  3. 日志——Vue.js开发在线简历生成器
  4. Asp.net导出Excel
  5. 给recycleview添加尾部
  6. netty io.netty.buffer简介
  7. VMware Workstation 更改语言
  8. linux 下的lamp的简单安装
  9. @ResponseBody 和 @RequestBody 的作用
  10. ORACLE的直方图的一些试验