2012-01-04 168 views
1

我有一個問題...我有一個absolutelayout中的兩個滾動視圖。換句話說,它們是全屏幕並且彼此重疊重疊滾動視圖

頂部滾動視圖是水平滾動的,而底部滾動視圖是垂直滾動滾動視圖。

當我滾動水平我想要頂部滾動,當我滾動垂直我希望底部滾動。

但我的問題是,滾動型水平通吃滾動事件,使其底部一個從來沒有收到一個滾動事件......

我怎樣才能解決這個問題?

在此先感謝!

+0

另外我注意到你使用了一個AbsoluteLayout,這是棄用。主要是由於屏幕尺寸和分辨率現在都不同。它可能在您的模擬器或手機上看起來很棒,但可以嘗試將它放在平板電腦或其他手機上(沒有什麼看起來合適)。只是一個頭。 – Jack 2012-01-04 20:46:19

+0

我使用fill_parent,所以滾動視圖將永遠是全尺寸:) – Alioooop 2012-01-05 11:59:27

回答

0

您可能需要爲此實現自定義控件。您需要一個Scroller級別的自定義控件。您也可以下載source code for ScrollView class並將其修改爲雙向。

不要將可滾動的東西放入其他可滾動的東西 - 它們傾向於通過觸摸事件進行爭奪。

+0

但是,這將有助於什麼?如果其他事情正在採用,底層視圖將永遠不會獲得觸摸事件? – Alioooop 2012-01-05 12:15:44

1

如何嵌套它們?您可以通過填充和邊距使其在視覺上看起來相同,並且還可以控制哪個視圖處理觸摸。

我不確定你是否可以說一個滾動視圖應該只處理水平,而另一個只處理垂直 - 可能不是。但是你可以重寫onTouchEvent和onInterceptTouchEvent來定義你需要的任何行爲! (查看http://developer.android.com/reference/android/view/GestureDetector.html

例如,如果您希望父滾動視圖只處理垂直滾動,而孩子把手水平,你應該

}

或者類似的東西。你應該做什麼並不難,但你明白了。