AppCompatActivity 上的对话框没有标题。为什么?
Dialog on AppCompatActivity has no title. Why?
我正在使用 API 27 进行编译,并在 AppCompatActivity 上显示一个具有以下主题的对话框:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
完整应用程序的主题是这样的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
我正在使用以下代码显示对话框:
final Dialog dialog = new Dialog(mContext);
dialog.setTitle("Valorar " + APP_TITLE);
dialog.setContentView(sv);
dialog.show();
问题是显示的对话框没有标题,我不明白为什么。
我的 Activity 主题或对话框创建逻辑有问题吗?
我遇到过同样的问题,你是对的。警告对话框在 NoActionBar activity 中不显示标题栏,我不得不在我的 NoActionBar 主题中专门定义一个 alertDialogTheme
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="alertDialogTheme">@style/<your dialog theme></item>
</style>
您可以直接在上面使用 Theme.AppCompat.Light.Dialog.Alert
(或类似的),或者用它定义您自己的 parent
我建议使用 AlertDialog
而不是普通的 Dialog
。如果您使用 AlertDialog
的支持库版本,您还将在较旧的 API 关卡上获得 material 设计(而不是 Holo)。
这也将解决您的 activity 主题破坏对话框标题的问题。
对你来说,改变很简单:
new AlertDialog.Builder(mContext)
.setTitle("Valorar " + APP_TITLE)
.setView(sv)
.show();
<item name="windowNoTitle">true</item>
这将禁用标题,将其设置为false
..
<item name="windowNoTitle">false</item>
来自您的 Activity 主题
你可以尝试编程 :-
final Dialog dialog = new Dialog(mContext);
Window window = dialog.getWindow();
if (window != null) {
window.requestFeature(Window.FEATURE_NO_TITLE);
}
我正在使用 API 27 进行编译,并在 AppCompatActivity 上显示一个具有以下主题的对话框:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
完整应用程序的主题是这样的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
我正在使用以下代码显示对话框:
final Dialog dialog = new Dialog(mContext);
dialog.setTitle("Valorar " + APP_TITLE);
dialog.setContentView(sv);
dialog.show();
问题是显示的对话框没有标题,我不明白为什么。
我的 Activity 主题或对话框创建逻辑有问题吗?
我遇到过同样的问题,你是对的。警告对话框在 NoActionBar activity 中不显示标题栏,我不得不在我的 NoActionBar 主题中专门定义一个 alertDialogTheme
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="alertDialogTheme">@style/<your dialog theme></item>
</style>
您可以直接在上面使用 Theme.AppCompat.Light.Dialog.Alert
(或类似的),或者用它定义您自己的 parent
我建议使用 AlertDialog
而不是普通的 Dialog
。如果您使用 AlertDialog
的支持库版本,您还将在较旧的 API 关卡上获得 material 设计(而不是 Holo)。
这也将解决您的 activity 主题破坏对话框标题的问题。
对你来说,改变很简单:
new AlertDialog.Builder(mContext)
.setTitle("Valorar " + APP_TITLE)
.setView(sv)
.show();
<item name="windowNoTitle">true</item>
这将禁用标题,将其设置为false
..
<item name="windowNoTitle">false</item>
来自您的 Activity 主题
你可以尝试编程 :-
final Dialog dialog = new Dialog(mContext);
Window window = dialog.getWindow();
if (window != null) {
window.requestFeature(Window.FEATURE_NO_TITLE);
}