我正在使用CustomView,它扩展了一些Android视图,如FrameLayout ,在我的布局中,我使用一个带有定制PagerAdapter的ViewPager 。
问题是当片段重新附加到ViewPager/Activity时,我的视图未还原它状态。
我找不到为什么不调用View.onSaveInstanceState()的原因。
简单的答案:因为我没有为视图设置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"/>