【发布时间】: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