Подтвердить что ты не робот

Как добавить полосы прокрутки в LinearLayout в Android?

Как добавить полосы прокрутки в представление на Android?

Я попытался добавить android:scrollbars:"vertical" в LinearLayout в мой XML файл макета, но он не работает.

Я думал, что полосы прокрутки по умолчанию установлены на Android, но это не так. Кажется, мы должны сами это сделать - как мне это сделать?

4b9b3361

Ответ 1

Вы не можете добавлять полосы прокрутки к LinearLayout, потому что это не прокручиваемый контейнер.

Только прокручиваемые контейнеры, такие как ScrollView, HorizontalScrollView, ListView, GridView, ExpandableListView показывают полосы прокрутки.

Я предлагаю разместить ваш LinearLayout внутри ScrollView, который по умолчанию будет показывать вертикальные полосы прокрутки, если для прокрутки достаточно содержимого.

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <!-- Your content goes here -->   

    </LinearLayout>
</ScrollView>

Если вы хотите, чтобы вертикальная полоса прокрутки всегда отображалась, добавьте android:scrollbarAlwaysDrawVerticalTrack="true" к вашему ScrollView. Обратите внимание, что высота LinearLayout установлена ​​на wrap_content - это означает, что высота LinearLayout может быть больше, чем высота ScrollView, если имеется достаточно контента - в этом случае вы сможете прокручивать LinearLayout вверх и вниз.

Ответ 2

Вы не можете добавить панель прокрутки к виджету таким образом. Вы можете обернуть виджет внутри ScrollView. Вот простой пример:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/txt"/>
    </LinearLayout>
</ScrollView>

Если вы хотите сделать это в коде:

ScrollView sv = new ScrollView(this);
//Add your widget as a child of the ScrollView.
sv.addView(wView);