scrollview中嵌套listview产生冲突问题
在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产生冲突问题相关推荐
- ScrollView中嵌套ListView
放置比较少的ListView组件效果图: Item布局文件 list_view_item.xml 布局文件的内容: <RelativeLayo ...
- Android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动
有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个 scrollview 被向下滑动直到ListV ...
- ScrollView中嵌套ListView控件,数据无法显示完全
为什么80%的码农都做不了架构师?>>> public void setListViewHeightBasedOnChildren(ListView listView) { / ...
- 【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView
一 背景概述: ScrollView里嵌套ListView,一直是Android开发者(反正至少是我们组)最讨厌的设计之一,完美打破ListView(RecyclerView)的复用机制,成功的将Na ...
- 仿Android GridView以解决ScrollView中嵌套自带GridView滚动条冲突问题
有时候做Android开发难免会遇到ScrollView中嵌套GridView现象,一旦要他们结合使用就会出现一堆问题,这里考虑使用LinearLayout仿GridView去解决一下这个问题! 1. ...
- PullToRefreshListView中嵌套ViewPager滑动冲突的解决
PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部 ...
- ScrollView中嵌套WebView底部留白问题解决
ScrollView中嵌套WebView出现底部滑动留有大面积空白问题网络上有各种解决方案. 本博文基本上能终结该问题的出现,下面是网络上解决步骤: 1:第一种解决方案也是最多人提到的,在加载完成后重 ...
- [转载]Android: 如何实现ScrollView中含有ListView?
原文地址:Android: 如何实现ScrollView中含有ListView?作者:mailofzxf ListView本身就含有ScrollView,因此把ListView放到ScrollView ...
- ScrollView中嵌入Listview,当item高度不一样的时候,item展示不全问题
首先在scrollview中嵌入listview,我们需要动态设置listview的高度,否则只会展示一行. public void fixListViewHeight(ListView listVi ...
最新文章
- SpringBoot监听redis过期key
- CentOS6.X 系统安装图文教程,超详细
- Javascript综合应用小案例(续)
- 单例模式(线程安全+延迟加载)
- 关于CSS的碎片学习
- Linux下计算进程的CPU占用和内存占用的编程方法[转]
- [NOIP2016]愤怒的小鸟
- java 商品库存修改
- BZOJ1597 [Usaco2008 Mar]土地购买
- RW文档翻译学习——RW-BT-SW-COMMON-FS
- 计算机专业和机械自动化哪个好,自动化和机械设计制造及其自动化有哪些区别?选哪个好呢?...
- 新春蓝牙耳机怎么选?五年发烧友吐血盘点,高性能蓝牙耳机推荐
- C++complex复数类
- matlab怎么看输出电压纹波,Boost变换器的能量传输模式和输出纹波电压分析.pdf
- EXCEL VLOOKUP用中文匹配出错
- SQL Server求解最近多少销售记录的销售额占比总销售额的指定比例
- 学习GestureDetectorCompat,实现卡片左右滑动消失效果
- 武汉大学计算机学院 优秀夏令营,武汉大学计算机学院2014年优秀大学生暑期夏令营通知...
- 国内从事视觉领域的公司
- 键盘与ASCII码对应表