http://blog.csdn.net/zzh_receive/article/details/53176962
ScrollView嵌套ListView listview获取焦点把ScrollView顶上去的解决办法
有时候应用中需要ScrollView嵌套ListView,但是往往listView会获取焦点占满屏幕,以致于ScrollView的其他控件无法显示,解决的办法:
//重写ScrollView
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
return 0;
}
当然,ScrollView嵌套listView为了滑动正常及正确的显示,也需要重写ListView
import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; class ListViewForScrollView extends ListView { public ListViewForScrollView(Context context) { super(context); } public ListViewForScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public ListViewForScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override /** * 重写该方法,达到使ListView适应ScrollView的效果 */ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec); } }