我成功地实现了onRetainNonConfigurationInstance()为我的主要Activity若要保存和还原屏幕方向更改中的某些关键组件,请执行以下操作。但是,当方向改变时,我的自定义视图似乎是从头开始重新创建的。这是有意义的,尽管在我的例子中,这是不方便的,因为所讨论的自定义视图是X/Y图,所绘制的点存储在自定义视图中。是否有一种狡猾的方法来实现类似于onRetainNonConfigurationInstance()对于自定义视图,还是只需要在自定义视图中实现允许获取和设置其“状态”的方法?如何防止自定义视图在屏幕方向更改中丢失状态
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
BundleParcelable
public class CustomView extends View{
private int stuff; // stuff
@Override
public Parcelable onSaveInstanceState()
{
Bundle bundle = new Bundle();
bundle.putParcelable("superState", super.onSaveInstanceState());
bundle.putInt("stuff", this.stuff); // ... save stuff
return bundle;
}
@Override
public void onRestoreInstanceState(Parcelable state)
{
if (state instanceof Bundle) // implicit null check
{
Bundle bundle = (Bundle) state;
this.stuff = bundle.getInt("stuff"); // ... load stuff
state = bundle.getParcelable("superState");
}
super.onRestoreInstanceState(state);
}}- 3 回答
- 0 关注
- 378 浏览
添加回答
举报
0/150
提交
取消
