Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 包含片段的AppCompat样式对话框_Android_Android Fragments_Android Appcompat_Android Dialog_Appcompatdialog - Fatal编程技术网

Android 包含片段的AppCompat样式对话框

Android 包含片段的AppCompat样式对话框,android,android-fragments,android-appcompat,android-dialog,appcompatdialog,Android,Android Fragments,Android Appcompat,Android Dialog,Appcompatdialog,我想要一个AppCompat样式的对话框——背景、标题、按钮位置、按钮色调等——包含一个片段 使用自定义的DialogFragmentonCreateDialog()可以返回一个AppCompatDialog,然后在onCreateView()中可以扩展一个新布局,并且可以使用childFragmentManager将占位符视图替换为片段。但结果对话框是一个没有按钮的空框。它们可以手动添加到对话框的布局中,但无法从AppCompat获得样式 如果使目标片段扩展到DialogFragment,则同

我想要一个AppCompat样式的对话框——背景、标题、按钮位置、按钮色调等——包含一个片段

使用自定义的
DialogFragment
onCreateDialog()
可以返回一个
AppCompatDialog
,然后在
onCreateView()
中可以扩展一个新布局,并且可以使用
childFragmentManager
将占位符视图替换为片段。但结果对话框是一个没有按钮的空框。它们可以手动添加到对话框的布局中,但无法从AppCompat获得样式

如果使目标片段扩展到DialogFragment,则同样适用

要获取AppCompat按钮,您可以使用
AlertDialog.Builder
,并使用
.setView()
设置布局,但我找不到将片段设置为内容的方法。如果从
onCreateDialog()
尝试
childFragmentManager.beginTransaction().replace()
,则会得到:

 java.lang.IllegalStateException: Fragment does not have a view
 android.util.AndroidRuntimeException: Window feature must be requested before adding content
    at android.support.v7.app.AppCompatDelegateImplV7.throwFeatureRequestIfSubDecorInstalled(AppCompatDelegateImplV7.java:1479)
这似乎是因为,即使在使用了
builder.setView()
dialog.create()
之后,
dialog.setView()
onCreateView()
getView()
始终返回空值

这里的第二个答案似乎相当全面地涵盖了这一点,但并没有提出一个有利的解决方案:

如果覆盖
onCreateView()
getView()
以返回已充气的视图,则会得到:

 java.lang.IllegalStateException: Fragment does not have a view
 android.util.AndroidRuntimeException: Window feature must be requested before adding content
    at android.support.v7.app.AppCompatDelegateImplV7.throwFeatureRequestIfSubDecorInstalled(AppCompatDelegateImplV7.java:1479)
为什么不直接使用?