others - android视图没有调用onSaveInstanceState

130 4

我正在使用CustomView,它扩展了一些Android视图,如FrameLayout ,在我的布局中,我使用一个带有定制PagerAdapter的ViewPager 。

问题是当片段重新附加到ViewPager/Activity时,我的视图未还原它状态。

我找不到为什么不调用View.onSaveInstanceState()的原因。

时间: 原作者:

112 0

简单的答案:因为我没有为视图设置id,Android没有管理 onSaveInstanceState/onRestoreInstanceState如果视图没有设置id话。

总结一下,使用以下方法之一:

来自XML


<ScrollView


 android:layout_width="match_parent"


 android:layout_height="wrap_content"


 ...


 android:id="@+id/scrollView">


</ScrollView>



或从Java


yourCustomView.setId(R.id.myCustomView);



最后一个例子,你将静态标识添加到res/values/ids.xml,<item name="myCustomView" type="id"/>

原作者:
101 3

如果希望视图的实例自动保存状态,可以将此行添加到init方法中:


setSaveEnabled(true);



是否要这样做取决于你,即使视图不保存状态,视图用户也可以通过调用setSaveEnabled(true),或者在布局xml中指定android:saveEnabled=“true”

原作者:
...