Удалить дорожку полосы прокрутки из ScrollView в Android


104

В моем приложении для Android есть основной WebView (HTML, загруженный из локального ресурса), который я хочу использовать по всей ширине экрана и иметь возможность делать (по вертикали) прокручиваемым. Итак, я завернул WebView в ScrollView в моем XML-макете, но, что бы я ни делал, мне кажется, что я не могу удалить дорожку полосы прокрутки с правой стороны прокрутки. Хуже того, я не могу изменить цвет фона полосы прокрутки.

Дорожка занимает около 10 dp, что создает проблемы для HTML в WebView. Я бы хотел, чтобы полоса прокрутки отображалась поверх веб-представления (в стиле iPhone, если вы понимаете, о чем я). Теперь вы можете сказать: «Почему бы вам не изменить свой HTML, чтобы он был на 10 пикселей тоньше?», Что является моим запасным решением, но я бы предпочел, чтобы этого не было.

Вот соответствующий фрагмент XML-макета, вы увидите, что я пробовал все атрибуты android: etc, которые смог найти:

<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" Добавьте это в scrollview, если хотите, чтобы ваш экран прокручивался при открытой клавиатуре :)
Бисвас Хайярголи

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 может обрабатывать прокрутку.
Mick Byrne

18

Я немного смущен, почему вы вообще ставите a WebViewв ScrollView. У A WebViewесть собственная встроенная система прокрутки.

Что касается вашего фактического вопроса, если вы хотите, Scrollbarчтобы он отображался сверху, вы можете использовать

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

Да, вы правы в том, что ScrollView вообще не нужен, я сам разобрался с этим, прежде чем вернуться сюда. 'SetScrollBarStyle' в веб-представлении сработал, спасибо!
Мик Бирн

Мало того, что это не нужно, ScrollView не может содержать прокручиваемые представления, поэтому ваш WebView не будет прокручиваться в любом случае
Человек,

3
Не работает. Правильный ответ - это ответ Гарзада.
Мисаг Эмамверди

3
правильный ответ ниже, android: scrollbars = "none"
Араиб Карим

5

Решил мою проблему, добавив это в мои ListView:

android:scrollbars="none"

4

Эти решения не сработали в моем случае с относительной компоновкой и если клавиатура открыта android:scrollbars="none"и android:scrollbarStyle="insideOverlay"также не работает.

панель инструментов исчезла, моя кнопка «Готово» исчезла.

не работает

Это работает для меня

myScrollView.setVerticalScrollBarEnabled(false);

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.