Android開發 解決EditText與NestedScrollView 滾動衝突問題

問題簡述

  在將EditText套進NestedScrollView的狀況下,EditText輸入了多行內容後,沒法觸摸滾動到第一行ide

問題緣由

  在將EditText套進NestedScrollView的狀況下,NestedScrollView會攔截消費屏幕的移動觸摸事件,致使EditText沒法獲取移動觸摸事件.佈局

解決辦法

在activity裏寫EditText的觸摸監聽事件spa

private void initScrollHandler(){
        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;
            }
        });

    }
相關文章
相關標籤/搜索