我尝试通过 FragmentManager 和 FragmentTransaction(来自 android.support.v4.app)将一个 Fragment 放入另一个 Fragment 内的 FrameLayout 中。容器片段在顶部有一个按钮和一个 TextView,在底部有一个 FrameLayout(我以编程方式创建布局,我不想因为所有这些而伤害您的眼睛)。CreateView() 工作得很好,我无法访问容器底部的 FrameLayout 并可以通过动态添加或删除 View
@Override
public void onClick(View button) {
FrameLayout frame = (FrameLayout)findViewById(DETAIL_CONTENT_FRAME);
ImageView im = new ImageView(this);
im.setImageResource(R.drawable.test);
frame.addView(im);
}
但是当我尝试将片段而不是 ImageView 添加到 frameLayout 时,代码可以完美编译,但是在调用 onClickListener() 方法后没有出现所需的片段。我检查了片段的 onCreateView() 方法,它返回了一个正确的视图......
@Override
public void onClick(View button) {
ServerDialogFragment serverDialog = new ServerDialogFragment();
FragmentTransaction addDialog = getSupportFragmentManager().beginTransaction();
addDialog.add(DETAIL_CONTENT_FRAME, serverDialog);
addDialog.commit();
}
你对此有答案吗?
PS:我曾经尝试将片段添加到其他片段中并且它有效,但它们是仅包含 ImageViews 的简单片段。