Видаліть доріжку смуги прокрутки з 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.