Android 视图设计问题:如何创建滚动视图';s子视图填充屏幕?
堆栈溢出。 我现在正在制作一个android输入表单视图,在使用滚动视图时遇到了一些问题 首先,请看我的画。 设计蓝图 我想在垂直视图中放置一些编辑文本,并在屏幕底部放置一个提交按钮。但是scrollView的子组件的布局高度应该是包裹内容,而不是与父组件匹配。所以我的提交按钮设置在上次编辑文本的下方。若我能在最后一个编辑文本和按钮之间留一些空白,那个将很容易,但我做不到。如果我这样做,我认为布局会在不同的设备大小上产生一些问题 这是我的layout.xmlAndroid 视图设计问题:如何创建滚动视图';s子视图填充屏幕?,android,view,Android,View,堆栈溢出。 我现在正在制作一个android输入表单视图,在使用滚动视图时遇到了一些问题 首先,请看我的画。 设计蓝图 我想在垂直视图中放置一些编辑文本,并在屏幕底部放置一个提交按钮。但是scrollView的子组件的布局高度应该是包裹内容,而不是与父组件匹配。所以我的提交按钮设置在上次编辑文本的下方。若我能在最后一个编辑文本和按钮之间留一些空白,那个将很容易,但我做不到。如果我这样做,我认为布局会在不同的设备大小上产生一些问题 这是我的layout.xml <?xml version=
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.ResendPwActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<ImageButton
android:id="@+id/prev_btn"
android:layout_width="9dp"
android:layout_height="15dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@drawable/prev"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/change_pw_string"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginStart="-25dp"
android:gravity="center_vertical|center_horizontal"
android:text="@string/change_password"
android:textColor="@color/black"
android:textSize="17sp" />
</LinearLayout>
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/title_layout"
android:background="#dddddd" />
<TextView
android:id="@+id/current_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/line"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/current_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/current_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/new_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/new_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/validate_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/validate_new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/validate_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/validate_pw_label"
android:layout_marginBottom="30dp"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<View
android:id="@+id/view_layout"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_below="@id/validate_pw_input" />
<Button
android:id="@+id/submit_btn"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_alignParentBottom="true"
android:background="@drawable/update_profile_btn_selector"
android:text="@string/update_change"
android:textColor="@color/white"
android:textSize="20sp" />
</RelativeLayout>
</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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.ResendPwActivity">
<ScrollView
android:layout_width="match_parent"
android:fillViewport="true"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<ImageButton
android:id="@+id/prev_btn"
android:layout_width="9dp"
android:layout_height="15dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@drawable/prev"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/change_pw_string"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginStart="-25dp"
android:gravity="center_vertical|center_horizontal"
android:text="@string/change_password"
android:textColor="@color/black"
android:textSize="17sp" />
</LinearLayout>
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/title_layout"
android:background="#dddddd" />
<TextView
android:id="@+id/current_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/line"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/current_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/current_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/new_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/new_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/validate_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/validate_new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/validate_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/validate_pw_label"
android:layout_marginBottom="30dp"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<View
android:id="@+id/view_layout"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_below="@id/validate_pw_input" />
<Button
android:id="@+id/submit_btn"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_alignParentBottom="true"
android:background="@drawable/update_profile_btn_selector"
android:text="@string/update_change"
android:textColor="@color/white"
android:textSize="20sp" />
</RelativeLayout>
</ScrollView>
您的按钮应位于屏幕底部,以便更好地响应用户界面 而且scrollview必须只有一个子项,所以您不能一次在scrollview中添加按钮和relativelayout
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.ResendPwActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_above="@+id/submit_btn"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<ImageButton
android:id="@+id/prev_btn"
android:layout_width="9dp"
android:layout_height="15dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@drawable/prev"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/change_pw_string"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginStart="-25dp"
android:gravity="center_vertical|center_horizontal"
android:text="@string/change_password"
android:textColor="@color/black"
android:textSize="17sp" />
</LinearLayout>
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/title_layout"
android:background="#dddddd" />
<TextView
android:id="@+id/current_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/line"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/current_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/current_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/new_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/current_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/new_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_label"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<TextView
android:id="@+id/validate_pw_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/new_pw_input"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="30dp"
android:text="@string/validate_new_pw_string"
android:textColor="@color/black"
android:textSize="13sp" />
<EditText
android:id="@+id/validate_pw_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/validate_pw_label"
android:layout_marginBottom="30dp"
android:layout_marginEnd="35dp"
android:layout_marginStart="35dp"
android:layout_marginTop="15dp"
android:backgroundTint="@color/email_password_edittext_line_color_selector"
android:ems="10"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:textColor="@color/black"
android:textSize="17sp" />
<!--for responsive layout Button should be out side of scroll -->
</RelativeLayout>
</ScrollView>
<Button
android:id="@+id/submit_btn"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_alignParentBottom="true"
android:background="@drawable/update_profile_btn_selector"
android:text="@string/update_change"
android:textColor="@color/white"
android:textSize="20sp" />
</RelativeLayout>
这就是我想要的!你刚才添加了安卓:fillViewport=“true”对吗??谢谢你的帮助。你救了我一天!