当不在ListView中滚动时自动隐藏滚动条

在新的官方Twitter应用程序中,应用程序使用的所有ListView中的滚动条都是隐藏的,除非用户正在滚动列表。

当你开始滚动时,滚动条出现。 当你停下来,他们淡出animation,直到他们完全消失。

我似乎无法find任何文件中指出这是一个标准的function。

这是包含在API中的东西吗? 如果没有,任何人都知道这可能会做什么?

Solutions Collecting From Web of "当不在ListView中滚动时自动隐藏滚动条"

确认:使用android:fadeScrollbars(如果你是API级别5)或尝试使用setOnScrollListener来检查滚动状态并隐藏/显示酒吧。 一些代码示例在这个线程中: 如何检测Android ListView滚动停止?

您可以通过自定义主题和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属性,而不是淡化滚动条。

我还没有使用它们,但是你可以玩android:scrollbarDefaultDelayBeforeFadeandroid:scrollbarFadeDuration ,可以在所有的小部件(即View子类)上使用。

我跟着亚历克斯的答案,它使用了主题设置和代码。

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

但是,使用“图库”组件时遇到了一个问题。 虽然以下将编译罚款,它会抛出一个NullPointerException。 我认为这是与没有滚动条显示/隐藏的图库。

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

Android 2.2