Java 使用Theme.Light.NoTitleBar显示灯光警报对话框
我在清单中使用了以下行:Java 使用Theme.Light.NoTitleBar显示灯光警报对话框,java,android,android-alertdialog,Java,Android,Android Alertdialog,我在清单中使用了以下行: android:theme="@android:style/Theme.Light.NoTitleBar" 要在我的应用程序中没有标题栏并显示AlertDialog的轻型版本,如示例所示: 但它仍然以黑暗主题展示: 我的对话框Java代码: new AlertDialog.Builder(FreeDraw.this) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle("Clear
android:theme="@android:style/Theme.Light.NoTitleBar"
要在我的应用程序中没有标题栏并显示AlertDialog的轻型版本,如示例所示:
但它仍然以黑暗主题展示:
我的对话框Java代码:
new AlertDialog.Builder(FreeDraw.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Clear Drawing?")
.setMessage("Do you want to clear the drawing board?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
})
.setNegativeButton("No", null)
.show();
如何保持AlertDialog的主题灯?您必须使用
AlertDialog Builder
。使用它,您可以设置对话框的样式。请看以下示例:
@颜色/背色
@颜色/背色
在创建警报对话框时,可以使用类似的方法:
AlertDialog.Builder builder = null;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
builder = new AlertDialog.Builder(BaseActivity.this);
} else {
builder = new AlertDialog.Builder(BaseActivity.this, AlertDialog.THEME_HOLO_LIGHT);
}
// ... do your other stuff.
AlertDialog.Builder=null;
if(Build.VERSION.SDK\u INT
此代码将在较新版本中创建Holo样式的AlertDialog,在较旧版本的Android设备上创建普通的基于设备的AlertDialog。您文章中的顶部对话框是Holo Light主题对话框,而底部对话框是较旧的主题对话框。您无法在蜂巢下面的版本上获得全息灯光主题对话框。下面是我根据设备运行的安卓版本选择light主题的一个小片段
AlertDialog.Builder
将使用所传递上下文的主题。您可以使用ContextThemeWrapper
来设置此设置
ContextThemeWrapper themedContext;
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {
themedContext = new ContextThemeWrapper( FreeDraw.this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar );
}
else {
themedContext = new ContextThemeWrapper( FreeDraw.this, android.R.style.Theme_Light_NoTitleBar );
}
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
如果您使用的是来自谷歌的新材料库,并且希望保持主题的一致性
implementation 'com.google.android.material:material:1.0.0-beta01'
只需将其用于灯光AlertBox
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),R.style.Theme_MaterialComponents_Light_Dialog_Alert);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),R.style.Theme_MaterialComponents_Dialog_Alert);
对于暗AlertBox
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),R.style.Theme_MaterialComponents_Light_Dialog_Alert);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),R.style.Theme_MaterialComponents_Dialog_Alert);
我看到在我运行JB 4.2.2的手机上,它覆盖了整个白色屏幕!