我创建了一个包含一些文本和图像的片段:
public class ContentFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_content, container, false);
return view;
}
}
有没有办法让它在对话框中显示?
例如:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Showing a fragment in a dialog");
// Load fragment as dialog content somehow
AlertDialog alert = builder.create();
alert.show();
答案 0 :(得分:1)
每个对话框都有setView
方法,您可以通过编程方式创建或充气,请参阅example
您还应该考虑使用DialogFragment
答案 1 :(得分:1)
AlertDialog不应该托管片段。
您可以使用的解决方法是替换对话框UI,可以通过以下方式实现:
dialog.setContentView(R.layout.fragment_content)
这只会更改对话框视图,如果要将事件或数据绑定到片段内的控件,则需要在setContentView之后执行此操作