edittext和NestedScrollView滑動衝突

問題簡述
  在將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;
            }
        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章