включенное представление с двусторонней привязкой данных пошло не так после поворота устройства - PullRequest
0 голосов
/ 11 июля 2020

У меня есть xml, чтобы установить мой textinputlayout + edittext с двухсторонней привязкой данных и liveata, затем я включаю его в свой основной макет, проблема, когда я включал это представление несколько раз, и устройства вращаются, значение edittext будет неверное значение

generic_form.xml

         ...
         ...
        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/inputLayout"
            style="@style/Layout"
            android:layout_marginBottom="@dimen/_4dp"
            app:helperText="@{helper != null ? helper : ` `}"
            app:prefixText="@{prefix}"
            app:suffixText="@{suffix}">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/editText"
                style="@style/Input.Text"
                android:afterTextChanged="@{afterTextChanged}"
                android:hint="@{placeholder}"
                android:text="@={value}" />
        </com.google.android.material.textfield.TextInputLayout>
        ...
        ...

activity_main.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable
            name="viewModel"
            type="id.co.example.request.viewmodel.RequestViewModel" />
    </data>

    <androidx.appcompat.widget.LinearLayoutCompat
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <include
                android:id="@+id/formEmail"
                layout="@layout/view_form_generic"
                app:value="@={viewModel.loginData.email}"
                />

            <include
                android:id="@+id/formPassword"
                layout="@layout/view_form_generic"
                app:value="@={viewModel.loginData.password}"
                />
    </androidx.appcompat.widget.LinearLayoutCompat>
</layout>
part of viewmodel

...
val loginData: MutableLiveData<LoginData> = MutableLiveData()
...

введите описание изображения здесь

в первом редактируемом тексте значение равно aaa, во втором редактируемом тексте значение равно bbb, но после поворота устройства первое значение редактируемого текста также становится bbb. любая помощь в решении этой проблемы?

* примечание: я должен использовать макет включения, потому что у меня много edittext в 1 действии, и я не хочу копировать и вставлять много кода

...