首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android视图关闭某些视图的隐式状态保留

Android视图关闭某些视图的隐式状态保留
EN

Stack Overflow用户
提问于 2013-03-20 23:13:18
回答 2查看 4.8K关注 0票数 30

我有自定义的 View,它是在同一活动中动态添加多次的。

每个自定义视图实例都有一个TextView子级。TextView具有它的ID,并且对于每个视图实例都是相同的。

对于每个自定义视图实例,我在创建activity时为TextView设置了不同的Text。当我旋转屏幕时,活动被重新创建,但现在每个TextView都显示相同的Text (文本与最后一个实例的文本相同)。

这是因为实例状态的保存和恢复会自动保存一些信息,但这些信息显然与is相关联,在我的例子中会产生问题。

有没有办法禁用特定视图的自动状态保留?

是否有属性或设置或一些解决方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-20 23:18:05

您可以使用View.setSaveEnabled (boolean enabled)方法。

还可以使用saveEnabled attribute android:saveEnabled="false"通过xml禁用自动状态保存

票数 57
EN

Stack Overflow用户

发布于 2016-11-25 18:58:36

如果需要对所有层次结构应用setSaveEnabled:

代码语言:javascript
复制
    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);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15527456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档