2013-03-09 22 views
8

在iOS中,UIScrollView類中有flashScrollIndicators方法,使您可以像第一次顯示視圖時那樣使滾動條短暫閃爍。使代碼中的滾動條閃爍(例如iOS flashScrollIndicators)

我不能在文檔中找到了Android相當於此,使滾動閃爍簡要上滾動視圖(滾動型,ListView控件,的WebView等)。我試圖在視圖上發出一個requestLayout(),但那不起作用。

我問這個問題的原因是因爲我的視圖包含在ViewPager中,並且當用戶滑動到不同的頁面時,該頁面通常已經繪製並且不會刷新滾動條。

回答我的問題在這裏

的方法被稱爲awakenScrollBars並在View類的定義。不幸的是,方法是protected所以你將不得不繼承了滾動,ListView控件或任何查看您想擁有它的滾動條一閃而過。

另外,在公共方法scrollToscrollBy也閃爍滾動條,但只有當滾動位置實際上已經改變了。所以f.e. listView.scrollBy(0,0)將無法​​正常工作和listView.scrollTo(0,0)只能如果視圖是不是已經在頂部。

如果不能繼承的觀點,下面似乎工作,但無可否認它是一種黑客攻擊的:

view.setVisibility(View.INVISIBLE); 
view.setVisibility(View.VISIBLE); 

設置以無形的,然後立刻再次看到似乎並沒有引起任何重畫,但它具有觸發滾動條閃爍的副作用。

回答

5

我,迫使它滾動起來後對方倒地,直接解決了類似的問題。

scrollView.scrollBy(0, 1); 
scrollView.scrollBy(0, -1); 

這會導致滾動視圖顯示垂直滾動條,除非沒有任何內容需要滾動。

+0

請記住,如果滾動視圖已經處於底部,現在是底部的1個像素以上,由於-1滾動 – xorgate 2017-04-20 14:12:18