需求:完成一个竖直方向较长的页面,页面用到ScrollView,listview等
问题:listview放在Scrollview中长度不会自动填充只显示一个item布局拉伸不开
我的解决方式:自定义listview可以实现竖直方向滚动,listview显示全部填充内容,
项目中一个页面的长度比较长,需要用到ScrollView+listview(listview在scrollview中),我在布局设置了listview为自动填充(listview在布局的最下面),运行后界面显示的是listview的开始位置,而不是在整个页面的最顶部,这个解决的方法如下:
myScrollView.smoothScrollTo(0,20);无效时, 在代码里去掉listview的焦点 lv.setFocusable(false);
自定义listview代码如下,直接调用即可:
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//加上下面的话即可实现listview在scrollview中滑动
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
System.out.println("expandSpec = " + expandSpec);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
XML中引用方式:--__--
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >
<com.qq.mm.view.MyListView
android:id="@+id/listview_product"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvname"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:fadingEdge="none"
android:listSelector="#00000000" />
</LinearLayout>