2010-05-17 163 views
7

在新的官方Twitter應用程序中,應用程序使用的所有ListView中的滾動條都是隱藏的,除非用戶滾動瀏覽列表。當不在ListView中滾動時自動隱藏滾動條

當您開始滾動時,會出現滾動條。當你停下來時,他們會用動畫淡出,直到完全消失。

我似乎無法找到任何文件中指出這是一個標準的功能。

這東西包含在API中嗎?如果沒有,任何人都知道如何做到這一點?

回答

4

確認:或者使用android:fadeScrollbars(如果您是API級別5) 或嘗試使用setOnScrollListener檢查滾動狀態並隱藏/顯示條形圖。一些代碼的例子是,在這個線程: how to detect Android ListView Scrolling stopped?

1

我還沒有使用過它們,但是您可以玩android:scrollbarDefaultDelayBeforeFadeandroid:scrollbarFadeDuration,可在所有小部件(即View的子類)上使用。

+0

可能的工作,如果加上setScrollbarFadingEnabled(布爾值)API級別5 - XML屬性是機器人:fadeScrollbars – 2010-05-17 19:59:36

4

您可以通過添加這種使滾動條的衰落對通過自定義主題和fadeScrollbars樣式屬性API級別5,更新你的整個應用styles.xml

<style name="Theme.App" parent="android:Theme.Light"> 
    <item name="android:fadeScrollbars">true</item> 
</style> 

然後爲您的應用程序的新主題AndroidManifest.xml

<application android:icon="@drawable/app_icon" 
      android:label="@string/app_name" 
      android:description="@string/description" 
      android:theme="@style/Theme.App"> 

只要確保你沒有覆蓋個人活動這一全球性主題。早期的Android版本將安全地忽略這個未知的XML屬性,並且不會淡化滾動條。

0

我跟着亞歷克斯的答案,它使用主題設置和代碼。

GridView gridview = (GridView) findViewById(R.id.mygridView); 
gridview.setScrollbarFadingEnabled(false); 

我確實遇到了一個問題,但是使用Gallery組件。雖然下面的代碼可以很好地編譯,但它會拋出一個NullPointerException異常。我認爲這是爲了處理沒有滾動條顯示/隱藏的圖庫。

Gallery gallery = (Gallery) findViewById(R.id.myGallery); 
gallery.setScrollbarFadingEnabled(false); // <-- this will throw an exception 

的Android 2.2