如何给LinearLayout添加滚动条?

How to add Scroll Bar to LinearLayout?

我是 Android 应用程序开发的新手。

现在我正在设计一个应用程序,因为我有一个包含一些内容的 Activity。当用户将方向更改为水平视图时,一些内容会隐藏起来(离开屏幕)。所以为了让 then 可见,我想在我的应用程序中添加一个滚动条。

这是我的 activity 的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    tools:context="com.example.nitin.justjava.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:text="Toppings"
        android:textAllCaps="true"/>

    <CheckBox
        android:id="@+id/whipped_cream_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Whipped cream"
        android:textSize="16sp"
        android:paddingLeft="24dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="QUANTITY"
        android:textAllCaps="true"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="16dp"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/b"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:text="-"
            android:onClick="decrement"
            android:layout_marginRight="8dp"/>
        <TextView
            android:id="@+id/quantity_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:textSize="16sp"
            android:textColor="#000000"
            />
        <Button
            android:id="@+id/a"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:text="+"
            android:onClick="increment"
            android:layout_marginLeft="8dp"/>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Order Summary"
        android:textAllCaps="true"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="16dp"/>
    <TextView
        android:id="@+id/order_summary_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rs. 0"
        android:textSize="16sp"
        android:textColor="#000000"
        />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Order"
        android:layout_marginTop="16dp"
        android:onClick="submitOrder"/>

</LinearLayout>

谢谢

您应该使用 ScrollView 容器包装您的根布局:https://developer.android.com/reference/android/widget/ScrollView.html

  • ScrollView 可能只有一个直接 child 放在其中。

<?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"
    android:fillViewport="true">
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="16dp"
        tools:context="com.example.nitin.justjava.MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:text="Toppings"
            android:textAllCaps="true"/>

        <CheckBox
            android:id="@+id/whipped_cream_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Whipped cream"
            android:textSize="16sp"
            android:paddingLeft="24dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="QUANTITY"
            android:textAllCaps="true"
            android:layout_marginBottom="16dp"
            android:layout_marginTop="16dp"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/b"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:text="-"
                android:onClick="decrement"
                android:layout_marginRight="8dp"/>
            <TextView
                android:id="@+id/quantity_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="16sp"
                android:textColor="#000000"
                />
            <Button
                android:id="@+id/a"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:text="+"
                android:onClick="increment"
                android:layout_marginLeft="8dp"/>
        </LinearLayout>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Order Summary"
            android:textAllCaps="true"
            android:layout_marginBottom="16dp"
            android:layout_marginTop="16dp"/>
        <TextView
            android:id="@+id/order_summary_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rs. 0"
            android:textSize="16sp"
            android:textColor="#000000"
            />

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Order"
            android:layout_marginTop="16dp"
            android:onClick="submitOrder"/>

    </LinearLayout>
</ScrollView>