如何在对话框中用容器视图替换片段
Posted
技术标签:
【中文标题】如何在对话框中用容器视图替换片段【英文标题】:How to replace fragment with cointainerviewId in a Dialogbox 【发布时间】:2018-03-16 10:40:52 【问题描述】:我必须用片段替换 id,这是我的来源:
public void showEmojiDialog()
final Dialog dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.activity_check);
mEditEmojicon1 = (EmojiconEditText) dialog.findViewById(R.id.editEmojicon1);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.editEmojicon1, EmojiconsFragment.newInstance(false))
.commit();
Button dialogButton = (Button) dialog.findViewById(R.id.send_btn);
dialogButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
dialog.dismiss();
);
dialog.show();
这里面临的问题:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.editEmojicon1, EmojiconsFragment.newInstance(false))
.commit();
原因:java.lang.IllegalArgumentException:未找到片段 EmojiconsFragment1f7f3e0d #0 id=0x7f0d007c 的 id 0x7f0d007c (com.sample.testapplication:id/editEmojicon1) 的视图
我很困惑将 id R.id.editEmojicon1
替换为 EmojiconsFragment
,但是当我在对话框中时,它没有得到它的视图。
这是我想在对话框中显示的内容。
【问题讨论】:
你到底想做什么?您是否尝试在对话框中显示EmojiconsFragment
?
@Daniel Nugent 是的。我可以在活动中显示,但在自定义对话框中显示时遇到问题
【参考方案1】:
用getChildFragmentManager()
代替getSupportFragmentManager()
。
【讨论】:
getChildFragmentManager() 是一个片段的方法。我的 Activity 扩展了我在其中使用对话框的 AppCompatActivity。以上是关于如何在对话框中用容器视图替换片段的主要内容,如果未能解决你的问题,请参考以下文章