2012-12-18 67 views
1

我試着找出一種方法來解決這個問題,通過使用viewpager,但我一直無法完全做到這一點。如何使用ViewPager功能創建水平滾動視圖?

這是我被分配到解決的任務:

enter image description here

  • 創建一個視圖,允許分頁*(使用查看傳呼機和兩個片段之間交換解決)
  • 讓這兩個視圖共享具有parallaxing效果的相同背景(例如:下圖中的紅色視圖中的元素在移至綠色視圖時移動比背景稍慢)
  • 找到這兩個視圖的方法「分享」圖形。這個想法是在紅色視圖上有一個「跨越」到綠色視圖的動畫。

在Android平臺上有解決這個問題的方法嗎?有沒有一種方法可以簡單地定義一個比phone維度大的佈局,並且可以在視圖的可見部分和不可見部分之間進行頁面切換?

回答

1

你應該在onInterceptTouchEvent上工作。當你點擊horizo​​ntalScrollview時,你應該在onInterceptTouchEvent中返回false,否則返回true;

這裏,我怎麼沒

1)使CustomViewpager延長ViewPager 2)覆蓋onInterceptTouchEvent這樣

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    if (childId > 0) { 
     View scroll = findViewById(childId); 
     if (scroll != null) { 
      Rect rect = new Rect(); 
      scroll.getHitRect(rect); 
      if (rect.contains((int) event.getX(), (int) event.getY())) { 
       return false; 
      } 
     } 
    } 
    return true; 
} 
private int childId; 
public void setChildId(int id) { 
    this.childId = id; 
} 

3)在XML中使用customViewpager代替viewpager這樣

<com.packagename.CustomViewpager ..... 

4)並從這樣的活動中設置childId

CustomViewpager cv=(CustomViewpager)findViewById(R.id.id_of_customviewpager); 
cv.setChildId(R.id.id_of_customviewpager); 

5)完成

邏輯是,當你觸摸Horizo​​ntalScrollview給摸至其他明智給予觸摸到父

+0

這類作品的孩子。如果垂直滾動,則孩子的命中率不會改變。對流離失所兒童的原始位置進行尋呼手勢不會被攔截。 –

+0

@ chrish,停止viewpager刷卡,在我的情況ViewPager頁面包含ScrollView裏面,我有2個Horizo​​ntalScrollView,現在下面這Horizo​​ntalScrollView viewpager刷卡不工作。任何可能的解 –