0

我有一個線性佈局的兩個視圖尋呼機都佔用相同數量的屏幕。我想這樣做,以便如果用戶在屏幕上的任何位置滑動,那麼滑動只應用於較低視圖。我試圖增加觸摸代表,但沒有奏效。使一個viewpager上的滑動設置爲另一個

+0

如果您希望滑動僅適用於第二個viewpager,那麼爲什麼還要安裝第一個viewpager? – Antrromet

+0

第二個viewpager以編程方式滑動第一個viewpager以使其具有延遲效果。 – MikeC

回答

1

那麼你正在嘗試一些微妙的東西!我建議爲第二個viewpager創建一個CustomViewPager類,它可以有第一個viewPager的實例。

public class CustomViewPager extends ViewPager { 

    private ViewPager firstViewPager; 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     this.enabled = true; 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if(firstViewPager!=null){ 
      firstViewPager.onTouchEvent(event); 
     } 
     return super.onTouchEvent(event); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent event) { 
     if(firstViewPager!=null){ 
      firstViewPager.onInterceptTouchEvent(event); 
     } 
     return super.onInterceptTouchEvent(event); 
    } 

    public void setFirstViewPager(ViewPager firstViewPager) { 
     this.firstViewPager = firstViewPager; 
    } 
} 

在此你逝去,你在獲得運動事件的第二viewpager的onTouchEventonInterceptTouchEvent到第1 viewpager。您還想要按照here所述的方法禁用第一個viewpager上的滑動操作。

+0

因爲你提到'touch委託'我假設你來自iOS背景:)祝你好運與你的Android應用程序! – Antrromet

相關問題