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

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

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

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

Solutions Collecting From Web of "Как добавить полосы прокрутки в LinearLayout в Android?"

Вы не можете добавлять полосы прокрутки в 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 вверх и вниз.

Вы не можете добавить панель прокрутки к виджету таким образом. Вы можете обернуть виджет внутри 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);