260

我在屏幕上有很多项目,我需要使用滚动条以便用户可以向下滚动。但是,滚动条要么不可见,要么不起作用。如何将滚动条添加到LinearLayout?

4

10 回答 10

481

用 a 包裹线性布局<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>

注意:在 API 级别 8 及更高版本中,fill_parent已弃用并重命名为match_parent 。

于 2010-10-29T20:17:04.870 回答
152
<ScrollView 
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/scroll" 
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

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

 </ScrollView>
于 2010-10-30T04:16:02.710 回答
6

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

<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>
于 2020-11-06T07:03:17.020 回答
4

这是我通过反复试验来做到的。

ScrollView - (the outer wrapper).

    LinearLayout (child-1).

        LinearLayout (child-1a).

        LinearLayout (child-1b).

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

于 2013-03-28T00:18:48.177 回答
4

这可以使用标签来完成<ScrollView>。对于ScrollView,您必须提醒一件事,ScrollView 必须有一个 child

如果您希望整个布局可滚动<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>
于 2017-06-09T03:36:47.610 回答
1

You need to place ScrollView as the first child of Layout file and now put your linearlayout inside it. Now, android will decide on the basis of content and device size available whether to show a scrollable or not.

Make sure linearlayout has no sibling because ScrollView can not have more than one child.

于 2017-01-02T09:01:50.647 回答
1

您需要使用以下属性并将其包含在线性布局中

<LinearLayout ...>
<scrollView ...> 

</scrollView>
</LinearLayout>
于 2018-02-03T19:03:21.357 回答
0

每当您想让布局可滚动时,都可以使用<ScrollView>其中的布局或组件。

于 2020-11-06T07:33:51.420 回答
0
 <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

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

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <---------Content Here --------------->
            </LinearLayout>
       </ScrollView>
    </LinearLayout>
于 2016-05-07T19:07:29.710 回答
-29

您可以在 linearLayout 中添加属性:android:scrollbars="vertical"

于 2010-10-30T04:18:48.147 回答