2012-07-15 38 views
0

ScrollView中,我想實現水平滾動。爲此,我收聽手指觸摸屏幕或移動屏幕時發送的MotionEvents。它工作得很好,除非我不願意將垂直移動與水平移動組合在一起。 我注意到,垂直移動通過​​放置ACTION_CANCEL事件來中斷ACTION_MOVE的字符串。之後,不再生成ACTION_MOVE事件。處理水平滾動

我該怎麼做才能防止那些垂直移動取消排除ACTION_MOVE事件?

在此先感謝您花費時間來幫助我。

回答

0

爲什麼你不只是使用HorizontalScrollView 這就是這些東西的目的。

+0

這應該是一個評論。 – 2012-07-15 11:05:54

+0

因爲我也想處理垂直滾動。 – Zelig63 2012-07-15 13:49:27

+0

我知道這不是真的推薦,但你有沒有嘗試將Horizo​​ntalScrollView放入ScrollView? – 2012-07-16 13:23:16

1

你想要的垂直Scrollview裏面的子視圖調用這行代碼:

getParent().requestDisallowInterceptTouchEvent(true); 

看看這個SO張貼更多:Let parent View assume MotionEvents if child returns false

+0

PS。弗蘭克提出了一個觀點,我只是假設你有垂直視圖需要滾動,並且需要一個子視圖水平滾動。如果您實際上正在嘗試水平滾動ScrollView,然後按照他的建議... – 2012-07-15 06:29:52

+0

實際上,我想同時啓用垂直滾動和水平滾動。對於垂直滾動,我對'ScrollView'的工作方式非常滿意。而對於水平滾動,我正在用我自己的代碼來完成。我「只是」想暫時禁用垂直滾動,水平滾動的時間不受干擾。 – Zelig63 2012-07-15 17:27:35

+0

這是否意味着有多個子視圖堆疊在彼此的頂部,並且當您將其中一個視圖放入視圖中並試圖以水平方式滾動時,它只應該顯示在視圖上?或者包含在滾動視圖中的整個視圖是這樣做的?你可以發佈你的XML佈局?這將使它更容易理解你正在嘗試移動什麼...... – 2012-07-16 22:55:11