2010-05-17 25 views
7

Yeni resmi Twitter uygulamasında, kullanıcı listede gezinmedikçe uygulamanın kullandığı tüm ListViews öğelerindeki kaydırma çubukları gizlenir.ListView'de kaydırma yapılmadığında otomatik ilerletme kaydırma çubukları

Kaydırmaya başladığınızda, kaydırma çubukları belirir. Durduğunuzda, tamamen gidene kadar bir animasyonla sönerler.

Bu belgede standart bir özellik olarak belirten hiçbir şey bulamıyorum.

Bu, API'da yer alan bir şey mi? Değilse, bunun nasıl yapılacağını bilen var mı?

cevap

4

Onaylandı: ya android: fadeScrollbars (API level 5 iseniz) kullanın ya da kaydırma durumunu kontrol etmek ve çubukları gizlemek/göstermek için setOnScrollListener'ı kullanmayı deneyin. Bazı kod örnekleri Bu Konuda şunlardır: how to detect Android ListView Scrolling stopped?

1

henüz onları kullanmadıysanız, ancak tüm widget'lar geçerli android:scrollbarDefaultDelayBeforeFade ve android:scrollbarFadeDuration, etrafında oynayabilir (yani View alt sınıfları).

+0

işe yarayabilecek ki setScrollbarFadingEnabled (boolean) API seviyesi 5 ile birleştiğinde eğer - xml özniteliği olan android: fadeScrollbars –

4

Sen styles.xml bu ekleyerek özel bir temaya ve fadeScrollbars tarzı özelliyle API düzeyinde 5 ve daha yeni üzerinde Tüm uygulamaya ilişkin solmaya kaydırma çubuğunu etkinleştirebilirsiniz:

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

Ardından AndroidManifest.xml da uygulama için yeni bir tema ayarlayın:

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

Sadece bireysel faaliyetleri bu global tema baskın olmadığından emin olun. Önceki Android sürümleri, bilinmeyen XML özniteliğini güvenli bir şekilde yok sayar ve kaydırma çubuklarını soldurmaz.

0

Alex'in yanıtını takip ettim ve hem tema ayarlarını hem de kodu kullanarak çalıştı.

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

Ancak Galeri Bileşeninde bir sorunla karşılaştım. Aşağıdakiler iyi bir şekilde derlenirken, bir NullPointerException atar. Bunu göstermek/gizlemek için kaydırma çubukları olmayan bir Galeri ile yapmak olduğunu varsayalım.

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

Android 2.2

İlgili konular