android – Fragment setuserVisibleHint为true但getActivity返回null

android – Fragment setuserVisibleHint为true但getActivity返回null,第1张

概述我一直在片段的setUserVisibleHint()方法中做一些逻辑.我一直在检查isVisibleToUser是否为true,然后使用getActivity返回活动.这一点运行良好(100%的时间),直到我将支持库更新到最新版本(支持:appcompat-v7:24.2.0).现在getActivity总是返回null.解释此行为的支持库是否有一些更改? @Overridepublic vo 我一直在片段的setUserVisibleHint()方法中做一些逻辑.我一直在检查isVisibletoUser是否为true,然后使用getActivity返回活动.这一点运行良好(100%的时间),直到我将支持库更新到最新版本(支持:appcompat-v7:24.2.0).现在getActivity总是返回null.解释此行为的支持库是否有一些更改?
@OverrIDepublic voID setUserVisibleHint(boolean isVisibletoUser) {    super.setUserVisibleHint(false);    if (isVisibletoUser) {      getActivity() <- null    }
解决方法 我参加聚会有点晚了但也许这可以帮助别人.我通过在fragment类中创建一个布尔成员来解决这个问题.然后我使用它来确定我是否能够在setUserVisibleHint方法中成功获取活动.如果没有,我在onAttach中执行与活动相关的代码.见下文.
public MyFragment extends Fragment {    ...    private boolean doInOnAttach = false;    @OverrIDe    public voID setUserVisibleHint(boolean visible) {        super.setUserVisibleHint(visible);        // if the fragment is visible        if (true == visible) {            // ... but the activity has not yet been initialized            doInOnAttach = true;        } else {            myAction();        }    }    @OverrIDe    public voID onAttach(Context context) {        super.onAttach(context);        if (true == doInOnAttach) {            myAction();            doInOnAttach = false;        }    }    private voID myAction() {        // code to execute here    }}
总结

以上是内存溢出为你收集整理的android – Fragment setuserVisibleHint为true但getActivity返回null全部内容,希望文章能够帮你解决android – Fragment setuserVisibleHint为true但getActivity返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1130640.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存