Android'de ScrollView'dan kaydırma çubuğu izini kaldırın


104

Android uygulamamda, ekranın tüm genişliğini kullanmak ve (dikey olarak) kaydırılabilir hale getirmek istediğim bir ana Web Görünümü (yerel bir kaynaktan yüklenen HTML) var. Bu yüzden Web Görünümü'nü düzen XML'imde bir ScrollView'a sardım, ancak ne yaparsam yapayım kaydırma görünümünün sağ tarafından kaydırma çubuğu izini kaldıramıyorum. Daha da kötüsü, kaydırma çubuğu yolunun arka plan rengini değiştiremiyorum.

Parça yaklaşık 10dp kadar yer kaplıyor, bu da Web Görünümünde HTML için sorunlar yaratıyor. Kaydırma çubuğunun web görünümünün üstünde görünmesini istiyorum (iPhone tarzı, ne demek istediğimi biliyorsanız). Şimdi, "HTML'nizi neden 10px daha ince olacak şekilde değiştirmiyorsunuz?" Diyebilirsiniz, ki bu benim geri dönüş çözümümdür, ancak bunu yapmak zorunda kalmamayı tercih ederim.

İşte ilgili düzen XML pasajı, bulabildiğim her android: etc özelliğini denediğimi göreceksiniz:

<ScrollView 
  android:id="@+id/deal_web_view_holder"
  android:layout_below="@id/clock_bar_holder"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:fillViewport="false"
  android:fadingEdge="none"
  android:background="#02a7e9"
  android:scrollbars="none"
  android:scrollbarSize="0dp"
  android:paddingRight="0dp"
  android:scrollbarAlwaysDrawVerticalTrack="false"
  android:scrollbarStyle="insideOverlay"
  android:scrollbarTrackVertical="@drawable/scrollbar_track_vertical" >
    <WebView
       android:id="@+id/deal_web_view"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>  
</ScrollView>

2.1 / API lvl 7 platformunu hedefliyorum, gerçekten sadece normal boyutlu ekranlar, mdp, hdp ve xhdp ile uğraşıyorum.

Yanıtlar:


506

Bir kaydırma çubuğunu bir görünümden (ve alt sınıfından) xml aracılığıyla kaldırmak için:

android:scrollbars="none"

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars


1
Soru posterinin sorduğu bu değil. O yapacağını söyledilike the scrollbar to appear on top of the web view content
Sudhanshu

11
Çalışır, ancak klavye açıkken ekranı
kaydıramazsınız

4
android: scrollbarThumbVertical = "@ null" Klavye açıkken ekranınızın kaydırılmasını istiyorsanız bunu kaydırma görünümüne ekleyin :)
Biswas Khayargoli

29

dene bu senin onCreate aktiviten:

ScrollView sView = (ScrollView)findViewById(R.id.deal_web_view_holder);
// Hide the Scollbar
sView.setVerticalScrollBarEnabled(false);
sView.setHorizontalScrollBarEnabled(false);

http://developer.android.com/reference/android/view/View.html#setVerticalScrollBarEnabled%28boolean%29


Teşekkürler ... Bunu zaten denedim (kodda ve layout.xml'de), ancak bu yaklaşım yine de ScrollView içindeki Web Görünümü'nün yatay boyutuna müdahale etti. En iyi çözüm, yukarıda sunulan çözümdü, sadece ScrollView'ı tamamen kaldırıp WebView'ın kaydırmayı kendi başına yapmasına izin veriyordu. Temel sorun, ScrollView'ı ne zaman kullanmanın ne zaman uygun olduğunu anlamamış olmamdı; yani Android'deki her görünüm kaydırmayı kaldırabilir.
Mick Byrne

18

Biraz bir koyuyoruz neden karıştı olduğum WebViewbir içine ScrollViewilk etapta. A WebViewkendi yerleşik kaydırma sistemine sahiptir.

Asıl sorunuzla ilgili olarak Scrollbar, en üstte görünmesini istiyorsanız, kullanabilirsiniz.

view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY) or   
android:scrollbarStyle="insideOverlay"

Evet, ScrollView'a ihtiyacınız olmadığı konusunda haklısınız, burayı tekrar kontrol etmeden önce bunu kendim çözdüm. Web görünümündeki 'setScrollBarStyle' bir zevk aldı, teşekkürler!
Mick Byrne

Bir ScrollView sadece gerekli değil, aynı zamanda kaydırılabilir görünümler içeremez, bu nedenle Web Görünümünüz zaten kaydırılamazdı
Bir Kişi

3
Çalışmıyor. Doğru cevap Garzahd'ın cevabıdır.
Misagh Emamverdi

3
doğru cevap aşağıdadır, android: scrollbars = "none"
Araib karim

5

Sorunumu şunu ekleyerek çözdüm ListView:

android:scrollbars="none"

4

Bu çözümler Göreceli Düzen ile benim durumumda Başarısız Oldu ve KeyBoard Açıksa android:scrollbars="none"& android:scrollbarStyle="insideOverlay" ayrıca çalışmıyorsa.

araç çubuğu gitti, bitti düğmem gitti.

çalışmıyor

Bu benim için çalışıyor

myScrollView.setVerticalScrollBarEnabled(false);

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.