如何在Android中的视图中添加滚动条?
我尝试将android:scrollbars:"vertical"
添加到我的布局XML文件中的LinearLayout
,但它无效。
我认为在Android中默认情况下会绘制滚动条,但它似乎并非如此。看来我们必须自己画画 - 我该怎么做?
答案 0 :(得分:50)
您无法将滚动条添加到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
。
答案 1 :(得分:11)
您不能以这种方式向窗口小部件添加滚动条。您可以将小部件包装在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);