首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次使用NavigationDrawer时不加载分片的内容

每次使用NavigationDrawer时不加载分片的内容
EN

Stack Overflow用户
提问于 2017-04-17 02:59:05
回答 1查看 383关注 0票数 0

我有一个导航抽屉,里面有6个片段。其中一个应该包含ListView。我让它工作了,我可以通过导航抽屉切换所有的片段。当我按下包含ListView的那一个时,我可以看到它,就像它应该是的一样。但是,当我转到相同的片段(包含ListView),而我已经在其中时,ListView不再显示。这可能是因为我在片段中的onActivityCreated()方法上设置了ListView。我现在很好奇,当我再次按下相同的片段时会发生什么。活动是否保持加载状态,片段是否需要再次膨胀,这样就不会再次调用OnActivityCreated()方法?如果是这样,我必须做些什么,才能使ListView再次显示?

我的Fragment.class当前是这样的:

代码语言:javascript
复制
public class FahrplanFragment extends Fragment {

private ListView listView;
private Resources res;
private String[] plans;
private ArrayAdapter<String> adapter;

public FahrplanFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_fahrplan, container, false);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    listView = (ListView) getActivity().findViewById(R.id.listview_fahrplan);
    res = getResources();
    plans = res.getStringArray(R.array.plans);
    adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,
            android.R.id.text1, plans);
    listView.setAdapter(adapter);
}
}
EN

回答 1

Stack Overflow用户

发布于 2017-04-17 03:25:44

documentation中一样

在创建片段的活动并实例化该片段的视图层次结构时调用

。一旦这些部分就绪,它就可以用来执行最终的初始化,比如检索视图或恢复状态。。。这在onCreateView(LayoutInflater,ViewGroup,Bundle)之后和onViewStateRestored(Bundle)之前调用。

它每次都会被调用。您可以通过记录事件来进行检查。

当点击导航抽屉按钮时,你能发布事件处理的代码吗?

编辑1个

Here我重新创建了你的项目来测试它,它工作了。每次加载该片段时,都会包含列表视图。此外,它在事件发生时显示事件,并清楚地显示每次替换片段时都会调用onActivityCreated

我在这里能给出的最佳建议是,在代码的各个步骤中使用Log.d()System.out.println("...")记录代码,或者更好地通过设置断点进入调试模式,并在代码运行时检查代码,以了解它何时进入某些方法,何时不进入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43440925

复制
相关文章

相似问题

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