我在屏幕上有很多项目,我需要使用滚动条,以便用户可以向下滚动。然而,滚动要么不可见,要么不起作用。怎么可能添加一个滚动条到线性布局?


当前回答

无论何时你想让一个布局可滚动,你可以使用<ScrollView>与布局或组件在其中。

其他回答

这可以使用标签<ScrollView>来完成。对于ScrollView,你需要提醒的是,ScrollView必须有一个子节点。

如果你想要你的整个布局是可滚动的,那么在顶部添加<ScrollView>。检查下面给出的例子。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout 
        android:id="@+id/container" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            <!-- Content here -->
    </LinearLayout>

</ScrollView>

但是如果你想让布局的某些部分是可滚动的,那么在该部分中添加<ScrollView>。检查下面给出的例子。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="400dp">

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

        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
                <!-- Content here -->
        </LinearLayout>

    </ScrollView>

</LinearLayout>

你需要用滚动视图来包装你的线性布局

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout 
        android:id="@+id/container" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


    </LinearLayout>
</ScrollView>

下面是我通过试错的方法做到的。

ScrollView - (the outer wrapper).

    LinearLayout (child-1).

        LinearLayout (child-1a).

        LinearLayout (child-1b).

由于ScrollView只能有一个子元素,所以该子元素是线性布局。然后所有其他布局类型都出现在第一个线性布局中。我还没有尝试包含一个相对布局,但它们让我发疯,所以我要等到我的理智回来。

无论何时你想让一个布局可滚动,你可以使用<ScrollView>与布局或组件在其中。

用<ScrollView>包装线性布局

请看下面的例子:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       xmlns:android="http://schemas.android.com/apk/res/android">
       <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical">
                  <!-- Content here -->
            </LinearLayout>
      </ScrollView>
 </LinearLayout>

注意:fill_parent已弃用,并在API Level 8中重命名为match_parent 甚至更高。