我正在开发我在android中的第一个应用程序。我的xml布局文件有relativelayout和linearlayout。我的根布局是相对布局,其中包含textview,buttons和edittext以及其中2个相对布局。在我的第一个relativelayout我有一个edittext下面我有按钮和开关。当我在edittext中输入多于1行的数据时,我的按钮和下面的切换重叠。
如何让我的edittext接受超过1行而不更改其下方小部件的布局?
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/relative1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/blue3" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Name"
android:id="@+id/textView5"
android:layout_marginLeft="10dp"
android:layout_alignBottom="@+id/taskname"
android:layout_alignStart="@+id/textView7" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/taskname"
android:hint="@string/hint_name"
android:layout_marginTop="37dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/textView7">
<requestFocus />
</EditText>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Set Location"
android:id="@+id/textView6"
android:layout_alignTop="@+id/button5"
android:layout_toStartOf="@+id/taskname"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"
android:layout_alignEnd="@+id/textView7" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:src="@drawable/pin1"
android:id="@+id/button5"
android:onClick="set_loc"
style="@style/btnStyleBeige"
android:layout_marginTop="46dp"
android:layout_below="@+id/taskname"
android:layout_alignEnd="@+id/relative3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Always alert me"
android:id="@+id/textView7"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="20dp"/>
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/btnStyleBeige"
android:id="@+id/switch1"
android:layout_marginRight="10dp"
android:layout_centerVertical="true"
android:layout_alignStart="@+id/button5" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/relative2"
android:layout_marginTop="40dp"
android:layout_below="@+id/switch1"
android:layout_alignParentStart="true"
android:layout_alignEnd="@+id/taskname">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pickDate"
android:src="@drawable/c2"
style="@style/btnStyleBeige"
android:layout_marginStart="53dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pickTime"
style="@style/btnStyleBeige"
android:src="@drawable/c1"
android:layout_marginEnd="55dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/relative3"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text="Add Task"
android:onClick="add_task"
android:textColor="@android:color/white"
style="@style/btnStyleBeige"
android:background="@android:color/holo_blue_light"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button3"
android:text="Cancel"
android:onClick="cancel"
android:textColor="@android:color/white"
style="@style/btnStyleBeige"
android:background="@android:color/holo_blue_light"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/button2"
android:layout_marginStart="37dp" />
</RelativeLayout>
答案 0 :(得分:0)
你要求的是可能的。为此,您需要记住您正在使用的内容 - RelativeLayout
。 RelativeLayout列出与屏幕上其他元素相关的每个项目。因此,如果您的元素的布局依赖于EditText,那么如果编辑文本的尺寸发生更改,它们的位置将会改变。
所以说,您需要浏览布局并删除编辑文本的所有布局参考,并重新考虑布局。
答案 1 :(得分:0)
如果要在按钮下方切换,请将以下代码添加到Switch的xml中。
android:layout_below="@+id/button5"
作为替代方案,您可以查看设计,当您使用relativelayout时,只需在XML视图中硬编码两行的字符串,然后根据需要拖放资源。