Android-从Backstack返回时的空白片段

JC_Sharp

我有一个显示属性列表的视图,在屏幕底部有一个按钮,用于打开包含MapView的片段。

  @Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.find_property_btn_map:

            PropertyMapFragment fragment = PropertyMapFragment.newInstance(false, null);

            getActivity().getSupportFragmentManager().beginTransaction()
                    .addToBackStack(null)
                    .replace(((ViewGroup) getView().getParent()).getId(), fragment, PropertyMapFragment.class.getSimpleName())
                    .commit();

            break;
    }
}

我的属性片段的onCreateView方法如下

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    mRootView = inflater.inflate(R.layout.fragment_properties_list, container, false);
    getmBtnMap().setOnClickListener(this);
    getmBtnSaveSearch().setOnClickListener(this);
    getmBtnSort().setOnClickListener(this);
    getmListView().setAdapter(getPropertyAdapter());
    getmListView().setOnItemClickListener(this);
    getmListView().setOnScrollListener(this);
    getmListView().setScrollingCacheEnabled(false);

    searchProperties();

    return mRootView;
}

searchProperties();负责调用Web服务并填充ArrayAdapter

事实是,当我打开MapFragment,然后按返回按钮时,我Property fragment为空白,并且按钮不响应onClick事件。

我尝试调试,发现onCreateView()返回时被调用Property fragment,但是按钮不再起作用,并且listview无处可见。

我究竟做错了什么?

mike20132013

如果要从片段启动该Web视图,请尝试使用添加片段而不是replace

例如 :

getActivity().getSupportFragmentManager().beginTransaction()
                    .addToBackStack(null)
                    .replace(YOUR_CONTAINER_ID, fragment, PropertyMapFragment.class.getSimpleName())
                    .commit();

上面的代码是用新的片段容器替换该片段容器,而不是在其顶部添加该片段。因此,当您使用该ID进行替换片段时,它只会将该视图替换为新视图。

现在,

相同的代码,但添加:

getActivity().getSupportFragmentManager().beginTransaction()
                        .addToBackStack(null)
                        .add(YOUR_CONTAINER_ID, fragment, PropertyMapFragment.class.getSimpleName())
                        .commit();

现在,您拥有的Web视图片段将被添加到视图/片段中,现在当您从该Web视图中按回时,您先前的片段将可见。

只要确保您要替换ID与您拥有所有其他属性ID相同即可。

也许我误解了这个问题,所以请在这种情况下纠正我。

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android从Backstack还原给我空白片段

来自分类Dev

Backstack android片段导航

来自分类Dev

BackStack android片段

来自分类Dev

Android重新排序片段Backstack

来自分类Dev

Android重新排序片段Backstack

来自分类Dev

BackStack片段在旋转时为空白

来自分类Dev

BackStack片段在旋转时为空白

来自分类Dev

带有嵌套/子片段的Android Backstack

来自分类Dev

什么是使用Android片段Backstack的最佳方法?

来自分类Dev

片段到活动Backstack返回空白视图

来自分类Dev

触发 OnTextMessage 时,Android 片段在 getview() 上返回 null

来自分类Dev

Android工具栏未在Backstack的片段上调用onOptionsItemSelected

来自分类Dev

Android-限制backStack中的片段数量?

来自分类Dev

带有动画的Backstack中的Android Pop片段

来自分类Dev

将Android片段保留在Backstack中

来自分类Dev

从活动android返回片段的值

来自分类Dev

Android片段-findViewById返回null

来自分类Dev

Android:插入片段时出错

来自分类Dev

片段切换 - 无法从 backstack 返回

来自分类Dev

android getSupportActionBar()在片段中返回null

来自分类Dev

findViewById()从片段内返回null-Android

来自分类Dev

Android片段-findFragmentByTag始终返回null

来自分类Dev

Android - 片段返回堆栈导致白屏

来自分类常见问题

需要的说明-Android Studio中的空白片段Java代码

来自分类Dev

片段不在Android Studio中的空白活动

来自分类Dev

屏幕旋转时Android复制片段

来自分类Dev

片段中的Android listView单击时崩溃

来自分类Dev

单击ListViewItem时的Android加载片段

来自分类Dev

替换片段Android时出现NullPointerException