【问题标题】:How to make scrollview extend beyond screensize android?如何使滚动视图超出屏幕尺寸 android?
【发布时间】:2023-03-30 06:50:01
【问题描述】:

我的根元素是相对布局,其中我将一个 LinearLayout 包装到一个滚动视图中。 LinearLayout 有多个子元素,包括 textViews、editText 和其他具有 textviews 和 editText 的 Linearlayouts。查看了几个 SO 帖子,但没有帮助。我得到的只是屏幕右侧的一个灰色条,它最多只能滚动一英寸,不能再向下滚动。最后几个组件只有一半可见,直到我最后一个组件所在的底部才会滚动可见的。将 viewport 参数设置为 true/false 无效。任何帮助将不胜感激。

<RelativeLayout
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:background="@drawable/bg_plain"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Testactivity">

<TextView
    android:id="@+id/tv_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:layout_marginTop="40dp"
    android:gravity="center"
    android:singleLine="true"
    android:text="INFORMATION"
    android:textAlignment="center"
    android:textColor="#6D6E71"
    android:textSize="25sp"
    />

<ScrollView
    android:layout_width="300dp"
    android:layout_height="560dp"
    android:layout_below="@+id/tv_title"
    android:layout_centerInParent="true"
    android:fillViewport="true"
    >

    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="10dp"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_firstname"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="FIRST NAME*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_lastname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="LAST NAME*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_firstname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="textPersonName"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_lastname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="textPersonName"
                />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_titlein"
            android:layout_width="170dp"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="TITLE"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <RadioGroup
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="horizontal">

                <RadioButton
                    android:id="@+id/cb_mr"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/orange_full_rounded_corner"
                    android:gravity="center"
                    android:text="MR."
                    />

                <Space
                    android:layout_width="30dp"
                    android:layout_height="match_parent"/>

                <RadioButton
                    android:id="@+id/cb_mrs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/orange_full_rounded_corner"
                    android:gravity="center"
                    android:text="MRS./MS."
                    />
            </RadioGroup>
        </LinearLayout>

        <TextView
            android:id="@+id/tv_company"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="COMPANY"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_company"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="number"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_phone"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="PHONE*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_mobilephone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="MOBILE PHONE*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_phone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="number"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_mobilephone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="number"
                />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_emailaddress"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="EMAIL*"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_emailaddress"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="textEmailAddress"
            />

        <TextView
            android:id="@+id/tv_address"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="ADDRESS"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_address"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="text"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_city"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="CITY"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_zipcode"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="ZIP CODE"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_city"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="text"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_zipcode"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

【问题讨论】:

  • 你布局的目的不是很清楚,但我觉得你要找的是一个ListView,你试过了吗?
  • 布局只是一个带有字段的表单。 ListView 需要更难的实现,因为子项是异构类型布局。我期待一个简单的滚动视图就足够了。内容是静态的,我只需要从表单中获取输入值。它超出了屏幕尺寸,因此决定将其包装在一个不提供预期输出的滚动视图中..
  • 你的RelativeLayout标签关闭了吗?它在你的 sn-p 中没有出现
  • 是的,它是......不知何故截断了它,我也检查了它为什么没有显示。我可能超出了帖子的行数限制。
  • 您有一个 RelativeLayout 作为根,但没有指定子相对对齐。尝试将其更改为线性,或指定子对齐方式。

标签: android android-scrollview android-scrollbar android-scrolling


【解决方案1】:

您的布局结构很好。问题是您为几乎所有东西设置了指定的高度,这是不行的。如果你想使用字体高度,有一个名为

的属性
android:textSize

在所有与文本相关的视图中,首选单位是 sp 表示文本,dp 表示图像。

将所有高度改为

wrap_content

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多