如何添加在相对布局后面滚动的 ScrollView
how di add a ScrollView that scrolls behind a relative layout
我有一个父级 RelativeLayout,它在屏幕的上半部分包含一个 ScrollView,在屏幕的下半部分包含另一个 RelativeLayout。目前他们在三星 A5 等较小的设备上遇到的地方有点混乱。如何让我的 ScrollView 不与 RelativeLayout 重叠?在此处输入代码另外,如何让 RelativeLayout 在键盘打开时消失?
Virual Device with SamsungA5 screen specs
下面是我的layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".ui.ConfigActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@layout/config_panel">
<RelativeLayout
android:id="@+id/form_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textLabelConfig"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="Serial Setup:"
android:textStyle="bold" />
<TextView
android:id="@+id/labelSerialBaud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelConfig"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="Baud Rate:" />
<EditText
android:id="@+id/editSerialBaud"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelConfig"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="9600" />
<TextView
android:id="@+id/labelSerialBits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBaud"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="Bit setup:" />
<EditText
android:id="@+id/editSerialBits"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBaud"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="8n1" />
<CheckBox
android:id="@+id/checkBox485"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBits"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:text="RS485" />
<CheckBox
android:id="@+id/checkBox232"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBits"
android:layout_marginLeft="100dp"
android:layout_marginTop="10dp"
android:text="RS232" />
<TextView
android:id="@+id/textLabelGSM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/checkBox485"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="GSM Setup:"
android:textStyle="bold" />
<TextView
android:id="@+id/labelSim1APN"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelGSM"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="SIM1 APN:"
android:textStyle="bold" />
<EditText
android:id="@+id/editSim1APN"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelGSM"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim1User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1APN"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Username:" />
<EditText
android:id="@+id/editSim1User"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1APN"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim1Passwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1User"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Password:" />
<EditText
android:id="@+id/editSim1Passwd"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1User"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<!--- Sim 2 -->
<TextView
android:id="@+id/labelSim2APN"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1Passwd"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:text="SIM2 APN:"
android:textStyle="bold" />
<EditText
android:id="@+id/editSim2APN"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1Passwd"
android:layout_marginLeft="125dp"
android:layout_marginTop="15dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim2User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2APN"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Username:" />
<EditText
android:id="@+id/editSim2User"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2APN"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim2Passwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2User"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Password:" />
<EditText
android:id="@+id/editSim2Passwd"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2User"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
</RelativeLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/lower_layout"
android:layout_width="match_parent"
android:layout_height="155dp"
android:alpha="1.0"
android:layout_alignParentBottom="true">
<include layout="@layout/config_panel" />
<Button
android:id="@+id/buttonAdvConfig"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:text="@string/text_advanced" />
</RelativeLayout>
</RelativeLayout>
目前您的 ScrollView
适合整个屏幕,android:layout_above="@layout/config_panel"
是 no-op,因为 config_panel
没有为 [=11] 的任何 child 设置 ID =]s parent (它放得更深)。你可能应该在 lower_layout
上方对齐(此视图位于 XML 中的 ScrollView
下方,两者具有相同的 parent)
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@layout/lower_layout">
我有一个父级 RelativeLayout,它在屏幕的上半部分包含一个 ScrollView,在屏幕的下半部分包含另一个 RelativeLayout。目前他们在三星 A5 等较小的设备上遇到的地方有点混乱。如何让我的 ScrollView 不与 RelativeLayout 重叠?在此处输入代码另外,如何让 RelativeLayout 在键盘打开时消失?
Virual Device with SamsungA5 screen specs
下面是我的layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".ui.ConfigActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@layout/config_panel">
<RelativeLayout
android:id="@+id/form_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textLabelConfig"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="Serial Setup:"
android:textStyle="bold" />
<TextView
android:id="@+id/labelSerialBaud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelConfig"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="Baud Rate:" />
<EditText
android:id="@+id/editSerialBaud"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelConfig"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="9600" />
<TextView
android:id="@+id/labelSerialBits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBaud"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="Bit setup:" />
<EditText
android:id="@+id/editSerialBits"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBaud"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="8n1" />
<CheckBox
android:id="@+id/checkBox485"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBits"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:text="RS485" />
<CheckBox
android:id="@+id/checkBox232"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSerialBits"
android:layout_marginLeft="100dp"
android:layout_marginTop="10dp"
android:text="RS232" />
<TextView
android:id="@+id/textLabelGSM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/checkBox485"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="GSM Setup:"
android:textStyle="bold" />
<TextView
android:id="@+id/labelSim1APN"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelGSM"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="SIM1 APN:"
android:textStyle="bold" />
<EditText
android:id="@+id/editSim1APN"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/textLabelGSM"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim1User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1APN"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Username:" />
<EditText
android:id="@+id/editSim1User"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1APN"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim1Passwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1User"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Password:" />
<EditText
android:id="@+id/editSim1Passwd"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1User"
android:layout_marginLeft="125dp"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<!--- Sim 2 -->
<TextView
android:id="@+id/labelSim2APN"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1Passwd"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:text="SIM2 APN:"
android:textStyle="bold" />
<EditText
android:id="@+id/editSim2APN"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim1Passwd"
android:layout_marginLeft="125dp"
android:layout_marginTop="15dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim2User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2APN"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Username:" />
<EditText
android:id="@+id/editSim2User"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2APN"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
<TextView
android:id="@+id/labelSim2Passwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2User"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:text="APN Password:" />
<EditText
android:id="@+id/editSim2Passwd"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@id/labelSim2User"
android:layout_marginLeft="125dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textNoSuggestions"
android:text="" />
</RelativeLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/lower_layout"
android:layout_width="match_parent"
android:layout_height="155dp"
android:alpha="1.0"
android:layout_alignParentBottom="true">
<include layout="@layout/config_panel" />
<Button
android:id="@+id/buttonAdvConfig"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:text="@string/text_advanced" />
</RelativeLayout>
</RelativeLayout>
目前您的 ScrollView
适合整个屏幕,android:layout_above="@layout/config_panel"
是 no-op,因为 config_panel
没有为 [=11] 的任何 child 设置 ID =]s parent (它放得更深)。你可能应该在 lower_layout
上方对齐(此视图位于 XML 中的 ScrollView
下方,两者具有相同的 parent)
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@layout/lower_layout">