2016-08-15 68 views
0

我有一個ScrollView和一個嵌套的TextView。當我設置setOnTouchListener時,手勢被識別,但滾動不起作用。如果我設置setOnTouchListener嵌套TextView,它的工作正常。我嘗試了谷歌搜索,但無法解決問題。 但我需要將setOnTouchListener設置爲ScrollView當我將GestureListener設置爲ScrollView時,滾動不起作用

請幫忙。

layout.xml

<ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#FF0000" 
      android:id="@+id/scrollView"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/tv" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:textColor="#000000" 
        android:background="#00FF00" 
        android:padding="15dp" 
        android:textSize="18sp" /> 
      </LinearLayout> 
     </ScrollView> 

MainActivity.java

mGestureDetector = new GestureDetectorCompat(this,this); 
     findViewById(R.id.scrollView).setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, final MotionEvent event) { 
       Log.e("Stark", "setOnTouchListener"); 
       mGestureDetector.onTouchEvent(event); 
       return true; 
      } 
     }); 
+2

不完全確定,但我相信你說的是在你的onTouch中返回true,它處理了觸發事件。這樣ScrollView將不再處理touchevent(滾動) – Stefan

+0

你搖擺。它通過設置返回false來工作。謝謝 :) –

回答

0

爲什麼你需要設置onTouch。如果只上下滾動。下面試試

ScrollView sv; 

sv.post(new Runnable() { 
       @Override 
       public void run() { 
        sv.fullScroll(View.FOCUS_DOWN); 
       } 
      }); 

確保你在scrollview xml中有這個。希望能幫助到你。

android:fillViewport="true" 
相關問題