参考这位前辈:http://blog.sina.com.cn/s/blog_9fb0b14f0102v39y.html。还有这位前辈对自定义measure方法详细解释,非常详细:http://blog.csdn.net/hanhailong726188/article/details/46136569
在listview中需要在listview外层嵌套一个scroll,以便能控制滑动的空间,让每一次点击listview的item下方弹出的菜单,当最下面一行不会使菜单出现在不该出现的位置。当添加scroll在listview,发现listview的高度只有一个了,怎么设置高度固定的和match_parent都是没用的,需要重写lsitview才能解决,重写的listview的代码如下:
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
listview的文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="報價"
android:textColor="@color/white"
android:textSize="16sp" />
<ScrollView
android:id="@+id/price_scroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background" >
<allone.verbank.apad.client.component.fixedListView.PriceListViewScroll
android:id="@+id/price_quote_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@color/white" >
</allone.verbank.apad.client.component.fixedListView.PriceListViewScroll>
</ScrollView>
</LinearLayout>