問題簡述
在將EditText套進NestedScrollView的情況下,EditText輸入了多行內容後,無法觸摸滾動到第一行
問題原因
在將EditText套進NestedScrollView的情況下,NestedScrollView會攔截消費屏幕的移動觸摸事件,導致EditText無法獲取移動觸摸事件.
解決辦法
在activity裏寫EditText的觸摸監聽事件
mEditOpinionContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//canScrollVertically()方法爲判斷指定方向上是否可以滾動,參數爲正數或負數,負數檢查向上是否可以滾動,正數爲檢查向下是否可以滾動
if (mEditOpinionContent.canScrollVertically(1) || mEditOpinionContent.canScrollVertically(-1)){
v.getParent().requestDisallowInterceptTouchEvent(true);//requestDisallowInterceptTouchEvent();要求父類佈局不在攔截觸摸事件
if (event.getAction() == MotionEvent.ACTION_UP){ //判斷是否鬆開
v.getParent().requestDisallowInterceptTouchEvent(false); //requestDisallowInterceptTouchEvent();讓父類佈局繼續攔截觸摸事件
}
}
return false;
}
});