2010-05-17 159 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