Android - 防止TextView在追加时向上移动

时间:2016-06-12 11:51:33

标签: android xml

我的XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_media_play" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textInput"
    android:maxLines="5"
    android:layout_gravity="center_horizontal|top"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:ems="15"
    android:maxEms="15"
    android:layout_marginTop="150dp"
    />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="40sp"
        android:id="@+id/mText"
        android:gravity="center"
        android:paddingStart="20dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_gravity="center_vertical"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

TextView下方EditText显示正常,TextView默认为空。在我的代码中,我随着时间的推移附加到TextView,但是在一行填满之后,前一行向上移动更接近EditText,直到它们重叠为止。

TextView是否有办法在文字附加到EditText first line of BlankTextView 时向下增长,而不是向上移动?

更清楚:

EditText

first line of TextView <- first line shifted up one place
second line of TextView

转到:

gulp-eslint

1 个答案:

答案 0 :(得分:0)

首先,为了能够定义EditTextTextView之间的相对位置,您应该将它们添加到同一个RelativeLayout

之后,您可以使用android:layout_below属性将TextView置于EditText下方,以防止它们重叠。

尝试以下方法:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_media_play" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textInput"
            android:maxLines="5"
            android:layout_gravity="center_horizontal|top"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:ems="15"
            android:maxEms="15"
            android:layout_marginTop="150dp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textInput"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="40sp"
            android:id="@+id/mText"
            android:gravity="center"
            android:paddingStart="20dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:layout_gravity="center_vertical"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>

</android.support.design.widget.CoordinatorLayout>