我在Android應用程序中定製了View
,它被放在HorizontalScrollView
的內部,如圖所示。滾動查看發生在觸摸滾動的位置後
<HorizontalScrollView
android:id="@+id/feedBackScroller"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
<com.my.views.OfflineFeedbackView
android:id="@+id/feedBackView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/session_rec_page_title_bar_height"
android:layout_marginBottom="@dimen/session_rec_page_ctrl_bar_height"/>
</HorizontalScrollView>
的OfflineFeedbackView
表明,我玩的音頻軌道的間隔賽道,我滾動通過基於當前播放時間調用scrollTo(newXPos, newYPos)
這一觀點。我面臨的問題是,如果通過觸摸滾動屏幕然後開始播放,滾動的引用似乎在我的視圖中發生變化,並且滾動發生在通過觸摸滾動到的位置。我瀏覽了API文檔,發現scrollTo(newXPos, newYPos)
內部調用onScrollChanged(int l, int t, int oldl, int oldt)
,其中oldl
和oldt
分別是舊的水平和垂直原點。所以,我從中解釋的是,當我通過觸摸屏幕來滾動這些原點值時就會發生變化。所以,我也試過撥打onScrollChanged(newX, newY, 0, 0)
,但這只是凍結了屏幕,沒有滾動。難道我做錯了什麼?什麼可以是其他更好的方法來處理這個問題?