在新的官方Twitter应用程序中,应用程序使用的所有ListView中的滚动条都是隐藏的,除非用户滚动列表。
开始滚动时,会出现滚动条。当你停下来时,它们会以动画淡出,直到它们完全消失。
我似乎无法在文档中找到任何表明这是标准功能的内容。
这是否包含在API中?如果没有,任何人都知道如何做到这一点?
答案 0 :(得分:4)
确认:要么使用android:fadeScrollbars(如果你是API等级5) 或者尝试使用setOnScrollListener检查滚动状态并隐藏/显示条形图。一些代码示例在此线程中: how to detect Android ListView Scrolling stopped?
答案 1 :(得分: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属性,并且不会淡化滚动条。
答案 2 :(得分:1)
我还没有使用它们,但您可以使用android:scrollbarDefaultDelayBeforeFade
和android:scrollbarFadeDuration
,可以在所有小部件(即View
的子类)上使用。
答案 3 :(得分:0)
我按照Alex的回答,它使用了主题设置和代码。
GridView gridview = (GridView) findViewById(R.id.mygridView);
gridview.setScrollbarFadingEnabled(false);
我确实遇到了Gallery Component的问题。虽然以下将编译正常,但它将抛出NullPointerException。我认为这与没有滚动条显示/隐藏的图库有关。
Gallery gallery = (Gallery) findViewById(R.id.myGallery);
gallery.setScrollbarFadingEnabled(false); // <-- this will throw an exception
Android 2.2