我的应用程序中有一个RelativeLayout,但当手机处于横向模式时,它不会滚动。我读到我需要将它放在ScrollView中,但我一直都会收到错误,所以我可能没做错。
任何提示?
提前致谢。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff8400"
android:orientation="vertical" >
<EditText
android:id="@+id/txt_nomeSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="42dp"
android:ems="10"
android:hint="@string/nome"
android:inputType="text"
android:gravity="center" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/txt_coordSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_nomeSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/coordenadas"
android:inputType="text"
android:ems="10"
android:gravity="center" />
<EditText
android:id="@+id/txt_classSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_coordSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/classif"
android:inputType="text"
android:ems="10"
android:gravity="center" />
<EditText
android:id="@+id/txt_tipoSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_classSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/tipo"
android:inputType="text"
android:ems="10"
android:gravity="center"/>
<EditText
android:id="@+id/txt_subtipoSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_tipoSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/subtipo"
android:inputType="text"
android:ems="10"
android:gravity="center" />
<EditText
android:id="@+id/txt_moradaSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_subtipoSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/morada"
android:inputType="text"
android:ems="10"
android:gravity="center" />
<Button
android:id="@+id/btn_submitSpot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_moradaSpot"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/submeter" />
答案 0 :(得分:3)
只需将ScrollView作为顶级元素。然后你现有的RelativeLayout进入。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff8400"
android:orientation="vertical" >
...other existing code here
</RelativeLayout>
</ScrollView>
编辑:我已将RelativeLayout的高度更改为“wrap_content”,因为kabuko在他的答案中所说的是正确的。
答案 1 :(得分:1)
您确实需要ScrollView
,但View
内部的高度match_parent
没有意义。这会使内部View
与ScrollView
的大小相同,不会留下任何内容。您需要将内部View
(在这种情况下,您的RelativeLayout
)设置得足够高,以显示其所有内容。通常,这意味着wrap_content
。