圖片來源于網(wǎng)絡(luò)
在開發(fā)當(dāng)中我們需要實(shí)現(xiàn)一些滑動(dòng)的界面效果覆积,但是我們會(huì)出現(xiàn)多重滑動(dòng)布局而發(fā)生組件沖突听皿。試了網(wǎng)上的很多方法,我在這里和大家分享一下我解決ScrollView
嵌套ListView
沖突的方法宽档。分享一下我的解決方法尉姨,有兩種:
- 自定義ScrollView,重寫onInterceptTouchEvent()方法吗冤;
- 自定義ListView又厉,重寫onMeasure方法。
自定義ScrllView椎瘟,重寫onInterceptTouchEvent()方法
public class MyScrollView extends ScrollView {
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 不攔截覆致,繼續(xù)分發(fā)下去
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return false;
}
}
自定義完成之后就用自定義ScrllView代替Android自帶的ScrllView,并設(shè)置ListView的寬高肺蔚;
自定義ListView煌妈,重寫onMeasure方法
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 defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
自定義完成之后就用自定義ListView代替Android自帶的ListView,就可以了宣羊。
以上兩種是我嘗試過的解決ScrollView嵌套ListView沖突的方法璧诵,希望對(duì)使用這兩種控件的小伙伴有所幫助。