【问题标题】:Fragment inside a DialogFragment, blank screenDialogFragment中的片段,空白屏幕
【发布时间】:2018-07-23 08:48:39
【问题描述】:

我有一个带有框架布局的对话框片段(FragmentA)。 我正在尝试将另一个片段(FragmentB)添加到框架布局中。

public void setFragment(Fragment fragment) {
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.replace(R.id.frame_canvas, fragment);
    transaction.commit();
}

确认一下,我在 FragmentB 的 OnCreateView 中登录,并在调用 setFragment 时打印出来。

但是 FragmentA 的视图并没有将 FragmentB 添加到框架布局中。

编辑:

FragmentA 实际上是一个DialogFragment。会不会是这个问题?

【问题讨论】:

  • 您是否尝试过使用commitNow,或commit 后跟getChildFragmentManager().executePendingTransactions()
  • 试过了,没用。
  • 你试过FragmentTransaction transaction = getParentFragment().getChildFragmentManager().beginTransaction();link
  • 我是从 FragmentA 调用的,所以 getParentFragment 无效。这里 FragmentA 是 FragmentB 的父级

标签: android android-fragments fragmentmanager


【解决方案1】:

使用这个我认为它会起作用。
如果你在 Fragment A 上而不是使用下面的代码

    Fragment fr = new FragmentB();
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.frame_layout, fr);
    fragmentTransaction.commit();

如果您正在从调用片段 B 的位置进行活动,而不是使用如下代码 `

  Fragment fr = new FragmentB();
  FragmentManager fm = getSupportFragmentManager();
  FragmentTransaction ft = fm.beginTransaction();
  ft.replace(R.id.frame_layout, fr);
  ft.commit();` 

// xml

 <FrameLayout
    android:id="@+id/frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/general_home_toolbar">

【讨论】:

  • 我的是第一种情况。但抛出错误,No view found for id 0x7f08006f .... for FragmentB
  • 替换片段时提供你的框架布局ID
  • 不,没关系,我用了我的身份证。相应地
猜你喜欢
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多