在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据。网上说两个布局不建议嵌套,可是我有这种用法 的需要,最近做一个电影详情界面,做一个button沉底的效果,除了button外其他所有的控件布局都套在一个ScrollView里,这样可以做到button不用翻到布局最后才能看到,永远浮在屏幕的下方。
解决办法
找了下网上的,有几个思路。
- 根据ListView子项重置其高度。
- 设置listview禁止滚动,从而避免了冲突
第一个思路找了下解决办法和代码,没有解决我的问题。
第二个思路,
首先自定义一个listview类NoScrollListview,在类里面写禁止滚动的方法
public class NoScrollListview extends ListView{
public NoScrollListview(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
然后在布局文件中用上就行了,记得加上包名
<com.example.unit_ui_test.NoScrollListview
android:id="@+id/comment_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageView1"
android:layout_below="@+id/comment_label"
android:scrollbars="none" >
</com.example.unit_ui_test.NoScrollListview>
然后就OK 啦。
特别鸣谢:
http://blog.csdn.net/centralperk/article/details/22088499
http://blog.csdn.net/gaojinshan/article/details/17055511