edittext中的多行更改了布局

时间:2015-06-02 16:28:24

标签: android layout android-edittext

我正在开发我在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>

2 个答案:

答案 0 :(得分:0)

你要求的是可能的。为此,您需要记住您正在使用的内容 - RelativeLayout。 RelativeLayout列出与屏幕上其他元素相关的每个项目。因此,如果您的元素的布局依赖于EditText,那么如果编辑文本的尺寸发生更改,它们的位置将会改变。

所以说,您需要浏览布局并删除编辑文本的所有布局参考,并重新考虑布局。

答案 1 :(得分:0)

如果要在按钮下方切换,请将以下代码添加到Switch的xml中。

android:layout_below="@+id/button5"

作为替代方案,您可以查看设计,当您使用relativelayout时,只需在XML视图中硬编码两行的字符串,然后根据需要拖放资源。