scrollView中嵌套gridView或者listView亦或者可扩展的view的情况
2015-11-02 14:33
423 查看
在开发中我们经常遇到scrollView中嵌套gridView或者listView亦或者可扩展的view的情况,前两者的嵌套会存在共存冲突问题,需要我们对GridView或者listView进行重写,重写其onMeasure()方法:
以上是解决嵌套共存的冲突问题!
除了此问题,可能还会出现自动滚动问题,scrollView里面嵌套可扩展的view或gridView,因为内容变化,导致进入页面后自动滚动,而不是在顶部,如图:
而真正想要的效果则如下图:
解决办法如下:
在scrollView子布局里面添加两个属性:
问题迎刃而解!
@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }
以上是解决嵌套共存的冲突问题!
除了此问题,可能还会出现自动滚动问题,scrollView里面嵌套可扩展的view或gridView,因为内容变化,导致进入页面后自动滚动,而不是在顶部,如图:
而真正想要的效果则如下图:
解决办法如下:
<ScrollView android:id="@+id/user_info_scrollview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/user_info_bottom_layout" android:layout_alignParentTop="true" android:fillViewport="true" android:scrollbars="none" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical" > </LinearLayout> </ScrollView>
在scrollView子布局里面添加两个属性:
android:focusable="true" android:focusableInTouchMode="true"
问题迎刃而解!
相关文章推荐
- Android画布(cavas)
- 程序员摆脱疲劳的 11 个建议
- ios layer 动画-transform.rotation
- python , angular js 学习记录【3】
- web前端安全 XSS跨站脚本 CSRF跨站请求伪造 SQL注入
- Adding AirDrop File Sharing Feature to Your iOS Apps
- Android图片添加标签:Android-PictureTagView
- 汇编语言实现冒泡排序算法
- Android中使用Handler造成内存泄露的原因和解决方法
- 不要使用 startActivityForResult(intent,RESULT_OK)
- 表格行和列的交换
- jQuery源码分析之ajaxConverter与ajaxHandleResponse函数
- java 枚举类使用
- C++Primer第五版 练习12.7(解答)
- C++矩阵处理库--Eigen初步使用
- Add sharing to your app via UIActivityViewController
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义02--方法
- navigator,JS检测浏览器插件
- 黑马程序员———C语言 printf函数和scanf函数
- Jquery时间轴特效(三种不同类型)