【问题标题】:view is null in fragment onresume片段 onresume 中的视图为空
【发布时间】:2018-02-13 14:39:05
【问题描述】:

由于我需要在简历中调用片段,因此我使用两种方法为片段创建了一个接口:

public interface FragmentLifecycle {
    public void onResumeFragment();
}

我所有的片段都实现了这个接口。

我最初使用这段代码将我的 TutorialFragment 替换为主要片段:

Fragment fragment = new TutorialFragment();
fragment.setArguments( selectedCat );
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace( R.id.category_fragment,fragment );
fragmentTransaction.addToBackStack( null );
fragmentTransaction.commit();

在我的主要片段上,我调用 TutorialFragmentonResumeFragment 方法:

FragmentLifecycle tutorial_fragment= new TutorialFragment();
tutorial_fragment.onResumeFragment();

我的函数需要片段视图来显示我的数据,但是当我想使用视图或调用 getview() 时我得到 null:

@Override
public void onResumeFragment() {
    Log.e( Tag," view in onResumeFragment "+getView() );
}

当我的片段从另一个片段调用时,我如何访问我的片段的视图?

【问题讨论】:

    标签: android android-viewpager fragment onresume


    【解决方案1】:

    当您在创建 Fragment 后直接调用方法 onResumeFragment() 时:

    FragmentLifecycle tutorial_fragment= new TutorialFragment();
    tutorial_fragment.onResumeFragment();
    

    您不会在该方法中获得任何视图,因为视图尚未附加到片段并且尚未创建片段。创建 Fragment 是 异步 过程,因此您需要等到创建 Fragment。

    您需要创建一个回调来告诉活动片段已创建。

    【讨论】:

    • 请详细说明你的答案,你能给我举个例子吗?或任何文件?我可以告诉活动视图已创建,但如何从活动中操作片段视图?我需要用新数据重新填充片段内的 RecyclerView,所以我选择运行 onResumeFragment。
    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多