欢迎使用CSDN-markdown编辑器
2015-07-11 23:03
387 查看
自定义ScrollView,内嵌视图,首个子视图高度同ScrollView
Android自定义布局类型,满足一些特殊需求Android中本身的布局方式已经丰富。不过呢,貌似怎么都赶不上设计、产品的想象力。这时候,就可能不得不针对特定需求自定义一些布局。比如,下面举例的页面设计。需要让一个ScrollView嵌套的子View中的首个子View占满当前ScrollView可见区域。如下图:
蓝色区域代表屏幕,灰色区域代表ScrollView子视图区域,红色区域代表ScrollView区域、绿色区域代表ScrollView子视图的子视图。也就是这个区域要求必须填充满整个ScrollView,也就是正好完全可见。
这里的思路是重写了ScrollView的onMeasure方法,使其子视图的子视图的高度等于ScrollView的高度。
当然写法可能不太好,这里就提供个思路,给那些新手同学一个思路。下面是代码
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); final int heightMode = MeasureSpec.getMode(heightMeasureSpec); if (heightMode == MeasureSpec.UNSPECIFIED) { return; } if (getChildCount() > 0) { final View innerParent = getChildAt(0); if (((ViewGroup) innerParent).getChildCount() > 0) { View innerFirstView = ((ViewGroup) innerParent).getChildAt(0); innerFirstView.measure(widthMeasureSpec, heightMeasureSpec); } } }
逻辑很简单,仅此记录一下,顺便给有需要的同学看看。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories