用另一个EditText动态替换TextInputLayout中的EditText

时间:2019-01-09 08:42:31

标签: android android-view android-textinputlayout

我正在使用TextInputLayout来显示一些输入,在我的代码中,我想用另一个EditText替换EditText,但是当我这样做时,输入的设计变得混乱。我的代码如下:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/generalInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:boxStrokeColor="@color/colorAccent"
    app:boxStrokeWidth="1dp"
    android:theme="@style/InputLayoutStyle"
    style="@style/InputLayoutStyle"
    android:background="@drawable/input_border"
    >

    <EditText android:id="@+id/oldEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="شماره موبایل"
        android:paddingBottom="@dimen/space_1"
        android:background="@android:color/transparent"
        xmlns:android="http://schemas.android.com/apk/res/android" />

</com.google.android.material.textfield.TextInputLayout>

然后我用这段代码替换编辑文本

    val parentOfEditText = oldEditText.parent as ViewGroup
    val index = parentOfEditText.indexOfChild(oldEditText)
    layoutParams = oldEditText.layoutParams
    parentOfEditText.removeView(oldEditText)
    inputET.layoutParams = layoutParams
    parentOfEditText.addView(inputET, index)

结果看起来像这样。最下面的输入是应该的(替换之前),最上面的输入是替换之后。但我不知道为什么会这样。顺便说一句,用于替换的视图完全相同,因此编辑文本不会更改。

enter image description here

0 个答案:

没有答案