我有自定义的 View
,它是在同一活动中动态添加多次的。
每个自定义视图实例都有一个TextView
子级。TextView
具有它的ID,并且对于每个视图实例都是相同的。
对于每个自定义视图实例,我在创建activity时为TextView
设置了不同的Text
。当我旋转屏幕时,活动被重新创建,但现在每个TextView
都显示相同的Text
(文本与最后一个实例的文本相同)。
这是因为实例状态的保存和恢复会自动保存一些信息,但这些信息显然与is相关联,在我的例子中会产生问题。
有没有办法禁用特定视图的自动状态保留?
是否有属性或设置或一些解决方法?
发布于 2013-03-20 23:18:05
您可以使用View.setSaveEnabled (boolean enabled)
方法。
还可以使用saveEnabled
attribute android:saveEnabled="false"
通过xml
禁用自动状态保存
发布于 2016-11-25 18:58:36
如果需要对所有层次结构应用setSaveEnabled:
public static void SaveEnableViewAndChildren(this View view, bool val)
{
if (view == null)
return;
view.SaveEnabled = val;
var viewGroup = view as ViewGroup;
if (viewGroup == null)
return;
for (int i = 0; i < viewGroup.ChildCount; i++)
SaveEnableViewAndChildren(viewGroup.GetChildAt(i), val);
}
https://stackoverflow.com/questions/15527456
复制相似问题