如何使线性布局可滚动?

29

大家好 - 是否有可能在需要的时候使整个线性布局可滚动?(当布局中的所有元素无法适应主屏幕时)?

我知道使用视图等方式是可行的...但是否有一种方法可以将布局中的所有内容同时包含到可滚动范围内?

也许“可滚动”不是正确的术语...基本上,如果其中一个元素(在这种情况下是按钮)没有完全显示在手机的主屏幕上,我需要滑动手指才能访问它...如果你明白我的意思。

4个回答

64

LinearLayout是View的子类,因此您可以像处理View一样处理LinearLayout。

因此,只需使用单个LinearLayout作为ScrollView的子元素即可。

请使用ScrollView


33

只是举例说明其他人正在谈论的事情

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center|left"
        android:orientation="vertical" >

         Here is your layout!

    </LinearLayout>

</ScrollView>

11

是的,您可以使用 ScrollView 使整个视图可滚动,但由于您只能包含一个主要子项,因此您将不得不在 ScrollView 中添加另一个 LinearView 视图,并将其他视图放在其中。

- 主视图

-- ScrollView

--- LinearView

---- 子视图1

---- 子视图2

---- 子视图3

....


2
你可以将任何布局设置为可滚动的。只需在 <?xml version="1.0" encoding="utf-8"?> 下添加以下行:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

在最后添加</ScrollView>

非可滚动活动的示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:verticalScrollbarPosition="right"
    tools:context="p32929.demo.MainActivity">


    <TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="102dp"
        android:id="@+id/textView"
        android:textSize="30sp" />
</RelativeLayout>

制作滚动效果后,它会变成这样:
<?xml version="1.0" encoding="utf-8"?>

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

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:verticalScrollbarPosition="right"
        tools:context="p32929.demo.MainActivity">


        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="102dp"
            android:text="TextView"
            android:textSize="30sp" />
    </RelativeLayout>
</ScrollView>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接