2012-04-25 59 views
3

所以我在屏幕的右側有這個按鈕(ImageViewonClick方法),當我將它拉到左側時,一個SeekBar您可以選擇一天的時間。要創建這個,我做了一個ScrollView水平LinearLayout與透視視圖在左邊和「按鈕」+ SeekBar在右邊(主要是在屏幕外面)。 「按鈕」有一個OnTouchOnClick的收聽者。爲什麼在調用scrollTo時(在onClick事件中),ScrollView有時(!)不會滾動

在onTouch中,通知scrollview將smoothScroll移動到正確的位置,具體取決於手指的移動位置。當您移動小於某個閾值並釋放onClick被調用時。

在onClick我已經告訴scrollview到smoothScrollTo/scrollTo/fullScroll。 fullScroll並沒有工作。 smoothScrollTo大部分時間都在一臺設備上運行(HTC Desire採用Android 2.2.2),但從未在其他設備(Android 2.2上的三星Galaxy Tab(舊版))上使用ONCLICK(?)。 scrollTo有時可以在兩個設備上運行......我確定onClick被稱爲我在記錄時記錄的,當它開始時並且在告知ScrollView滾動之後也是如此。

我已經試過張貼scrollTo到ScrollView處於可運行和延遲可運行:

scrollView.postDelayed(new Runnable() { 

    @Override 
    public void run() { 
     scrollView.scrollTo(left, 0); 
     Log.d("SomeTag", "The scroller should scroll to: "+left); 
    } 
}, 200); 

但是,這只是工作經常(所以有時)不張貼...

我我非常迷茫。我習慣於使用Android並習慣於不同設備的行爲不同,但我不習慣在同一設備上「有時」工作,「有時」不會有相同的呼叫......任何幫助將不勝感激!

回答

0

請參閱this answer

ScrollView.scrollTo()如果在調用該方法時正在進行一些佈局更改,則可能無法正常工作。你是對的,使用postDelayed()你不能保證佈局的改變總會在相同的延遲時間內完成。

相關問題