2016-02-07 66 views
0

如何通過點擊視圖頂部或視圖底部來將全屏幕textview頁面向上和向下翻頁?如何點擊android視圖或textview頁面向上或向下翻頁

我已經嘗試使用頁面向上和向下翻頁按鈕在textview的頂部和底部,但它是浪費空間。

如果textview是隻讀的,點擊視圖的頂部或底部應該允許我通過內容向上翻頁或向下翻頁。

在此先感謝您的任何建議 院長-O

回答

0

你需要一個OnTouchListener添加到view.Then你會得到其中有人在獲得通行證在上MotionEvent挖掘的座標觸摸方法。您可以通過在觸摸方式中調用GestureDetector來確定它是否是輕拍。知道座標和手勢後,可以使視圖適當地滾動。

您可以在構造函數中使用GestureDetector.SimpleOnGestureListener作爲您的GestureListener,只需重寫onSingleTapConfirmed方法並根據需要進行滾動。

確保在消耗手勢時返回true。還要確保傳遞GestureDetector的結果。

編輯: 如果你想要更簡單一些,你可以讓兩個不可見的視圖浮動在你的視圖頂部,並讓他們的點擊做滾動。

編輯2:要實現向上翻頁和向下翻頁,您需要將TextView放在ScrollView的內部,然後按照頁面的長度滾動視圖。如果你想禁用滑動或者一掃而空的定期滾動,你可以創建一個自定義的視圖來擴展滾動視圖並覆蓋它的方法onInterceptTouchevent方法

編輯3:在註釋中查看你的代碼我看到你正在使用MovementMethod滾動。如果你想這樣做,你將不得不創建一個自定義BaseMovementMethod。它的這種方法導致滾動。你可以重寫它的ontouchevent來實現你的頁面和頁面。你不需要看不見的景象。我之前並沒有意識到這門課,現在看到這可能是最好的方式。只要創建一個這樣的類:

import android.text.Spannable; 
import android.text.method.BaseMovementMethod; 
import android.view.GestureDetector; 
import android.view.MotionEvent; 
import android.widget.TextView; 


public class PagingMovementMethod extends BaseMovementMethod{ 
    private final GestureDetector gestureDetector=new GestureDetector(new GestureDetector.SimpleOnGestureListener(){ 
     @Override 
     public boolean onSingleTapConfirmed(MotionEvent e) { 
      return super.onSingleTapConfirmed(e); 
     } 
    }); 
    @Override 
    public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) { 

     boolean singleTap= gestureDetector.onTouchEvent(event); 
     if(singleTap){ 
      if(event.getX()<widget.getHeight()/2){ 
       pageUp(widget,text); 
      }else { 
       pageDown(widget,text); 
      } 
     } 
     return singleTap; 
    } 
} 

如果您將此分配給您的TextView,它應該沒有任何其他意見。

+0

我已經添加了兩個不可見的按鈕,但是敲擊它們並不是滾動textview。 void Page_Up(){ \t \t mBodyText.setMovementMethod(new ScrollingMovementMethod()); \t} \t空隙向下_翻頁(){ \t \t mBodyText.setMovementMethod(新 ScrollingMovementMethod()); \t} 我不明白如何讓它們向上翻頁或向下翻頁 –

+0

您是否將可見性設置爲隱形...因爲這使得它們不可點擊...我的意思是不可見的意見與'android:背景=「#0000」' – Mo1989

+0

不,我把它們設置爲透明的,這也會使它們不可點擊?我沒有看到我編程它去哪裏下頁或頁面。有它只是魔術? –

0

只需創建具有透明背景的2 Buttons並將它們放置在頂部和底部。這是最簡單的解決方案。

+0

我這樣做,並設置它們來調用我的頁面或頁面下方包含mBodyText.setMovementMethod(new ScrollingMovementMethod())的方法;但我該如何編程才能向下滾動頁面或向上滾動頁面? –

相關問題