相关疑难解决方法(0)

使用View.BaseSavedState覆盖View.onSaveInstanceState()和View.onRestoreInstanceState()?

假设您希望从现有的View实现派生自己的View类,添加一些值,从而维护一些以有意义的方式表示View状态的变量.

如果您的View会像其他人一样自动保存其状态(如果已分配ID),那将是很好的,因此您可能希望覆盖onRestoreInstanceState()onSaveInstanceState().

当然,您需要调用基类的相应方法,并且需要将状态信息与基类的信息组合在一起.

显然,这样做的唯一安全方法是将你的超级类包装Parcelable在一个自己的中,Parcelable这样键就不会混淆了.

现在,有View.BaseSavedState其有趣的getSuperState()方法,但我有点不明白这是如何真正增加价值,只是存储基类的ParcelableBundle随着派生视图的状态值并返回.另一方面,也许某些其他系统组件会期望所有InstanceState信息都是类型View.AbsSavedState(例如getSuperState()可以调用)?

您愿意分享的任何经历?

android android-custom-view android-view

15
推荐指数
2
解决办法
8947
查看次数