Удалить полосу прокрутки из ScrollView в Android - PullRequest
98 голосов
/ 08 июня 2011

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

Дорожка занимает около 10 точек на дюйм, что создает проблемы для 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.

Ответы [ 6 ]

495 голосов
/ 20 января 2012

Чтобы удалить полосу прокрутки из представления (и его подкласса) через xml:

android:scrollbars="none"

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

28 голосов
/ 08 июня 2011

попробуйте это ваша деятельность наСоздать:

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

18 голосов
/ 08 июня 2011

Я немного запутался, почему вы ставите WebView в ScrollView.WebView имеет собственную встроенную систему прокрутки.

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

view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY) or   
android:scrollbarStyle="insideOverlay"
5 голосов
/ 28 апреля 2017

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

android:scrollbars="none"
4 голосов
/ 18 августа 2017

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

пропала, моя кнопка «Готово» пропала.

not Working

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

myScrollView.setVerticalScrollBarEnabled(false);
2 голосов
/ 25 октября 2018

Используя ниже, решил проблему

android:scrollbarThumbVertical="@null"
...