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