Видаліть доріжку смуги прокрутки з ScrollView в Android


104

У моєму додатку Android є основний WebView (HTML, завантажений з локального ресурсу), який я хочу використовувати на всю ширину екрана і мати можливість (вертикально) прокручуватися. Отже, я загорнув WebView у ScrollView у своєму макеті XML, але незалежно від того, що я роблю, я не можу видалити доріжку смуги прокрутки з правого боку подання прокрутки. Що ще гірше, я не можу змінити колір тла доріжки прокрутки.

Дорога займає близько 10 дп або близько того, що створює проблеми для HTML у WebView. Я хотів би, щоб смуга прокрутки з’являлася вгорі веб-перегляду (стиль iPhone, якщо ви знаєте, що я маю на увазі). Тепер ви можете сказати "чому ви не зміните свій HTML на 10 пікселів тонше?", Що є моїм резервним рішенням, але я набагато краще цього не повинен робити.

Ось відповідний фрагмент макета XML, ви побачите, що я спробував кожен атрибут android: тощо, який я міг знайти:

<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, я справді просто маю справу з дисплеями нормального розміру, mdp, hdp та xhdp.

Відповіді:


506

Щоб видалити смугу прокрутки з подання (та його підкласу) через xml:

android:scrollbars="none"

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


1
Це не те, що задав плакат. Він сказав, що будеlike the scrollbar to appear on top of the web view content
Судханшу

11
Це працює, але ви не зможете прокручувати екран, коли клавіатура відкрита
DeltaCap019

4
android: scrollbarThumbVertical = "@ null" Додайте це до перегляду прокрутки, якщо ви хочете, щоб ваш екран прокручувався, коли клавіатура відкрита :)
Biswas Khayargoli

29

спробуйте це ваша діяльність onCreate:

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


Дякую ... Я вже спробував цей (у коді та у layout.xml), але цей підхід все ще заважав розміру горизонталі WebView у ScrollView. Найкращим рішенням було запропоноване вище, просто видалити ScrollView і повністю дозволити WebView самому керувати прокруткою. Основною проблемою було моє нерозуміння того, як коли було доцільно взагалі використовувати ScrollView; тобто кожен погляд в Android може працювати з прокруткою.
Мік Берн

18

Я трохи збентежений , чому ви ставите WebViewв ScrollViewв першу чергу. А WebViewмає власну вбудовану систему прокрутки.

Що стосується вашого актуального питання, якщо ви хочете, Scrollbarщоб показ відображався зверху, ви можете використовувати

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

Так, ви маєте рацію про те, що в першу чергу вам не потрібен ScrollView, я це розробив сам, перш ніж перевірити тут. "SetScrollBarStyle" на веб-перегляді працював у пригоді, дякую!
Мік Бірн

Мало того, що він не потрібен, ScrollView не може містити погляди, які можна прокручувати, так що ваш WebView так чи інакше не прокручується
Особа

3
Не працює. Правильна відповідь - відповідь Гарзада.
Місаг Емамверді,

3
правильна відповідь нижче, android: scrollbars = "none"
Araib karim

5

Вирішили свою проблему, додавши це до мого ListView:

android:scrollbars="none"

4

Ці рішення не вдалися в моєму випадку з відносною компоновкою та якщо клавіатура відкрита android:scrollbars="none"і android:scrollbarStyle="insideOverlay"також не працює.

панель інструментів відсутня, кнопка "Зроблено" відсутня.

не працює

Цей працює для мене

myScrollView.setVerticalScrollBarEnabled(false);

2

Використовуючи нижче, вирішили проблему

android:scrollbarThumbVertical="@null"

З перегляду: Привіт, будь ласка, не відповідайте лише вихідним кодом. Спробуйте надати приємний опис про те, як працює ваше рішення. Дивіться: Як написати гарну відповідь? . Дякую
sɐunıɔ ןɐ qɐp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.