我已经搜索了一段时间,但我认为大多数报告的错误(并且有很多)android.support.design.widget.TextInputLayout
与这个略有不同。至少,我已经解决了大多数其他错误,但在这个问题上很挣扎。我目前有一些这样Fragment
的活动TextInputLayout
<android.support.design.widget.TextInputLayout
android:id="@+id/input1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint1"
android:inputType="numberSigned" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/input2
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint2"
android:inputType="numberSigned"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/input3"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint3"
android:inputType="numberSigned">
</android.support.design.widget.TextInputLayout>
并且,在满足一些外部条件(不重要)之后,我打开并显示另一个隐藏上述片段的片段(100% 屏幕)。如果您想知道这个新片段需要一些我在特定情况下需要的额外字段。这是处理 new 创建的代码Fragment
:
Fragment2 fragment2 = new Fragment2();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction()
.replace(((ViewGroup) getView().getParent()).getId(), fragment2);
transaction.addToBackStack(Fragment1.class.getSimpleName());
transaction.commit();
但问题是,当返回(后退按钮按下、工具栏/操作栏主页按钮等)到第一个片段时。我所有的人都TextInputLayouts
失去了插入它们的文字。这真的很烦人,并且在专门使用 时不会发生EditText
,就像我们之前的 Material Design 过渡一样。
此外,如果我不使用 替换片段FragmentTransaction
,而是开始一个新的Activity
. 不幸的是,这不是我们真正想要的。我们不需要做这种变通方法。
有任何想法吗?这发生在任何人身上吗?