如何在Android中向LinearLayout添加滚动条?

时间:2011-04-14 09:57:32

标签: android scrollbar android-linearlayout

如何在Android中的视图中添加滚动条?

我尝试将android:scrollbars:"vertical"添加到我的布局XML文件中的LinearLayout,但它无效。

我认为在Android中默认情况下会绘制滚动条,但它似乎并非如此。看来我们必须自己画画 - 我该怎么做?

2 个答案:

答案 0 :(得分:50)

您无法将滚动条添加到LinearLayout,因为它不是可滚动的容器。

只有ScrollViewHorizontalScrollViewListViewGridViewExpandableListView等可滚动容器才会显示滚动条。

我建议您将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);