1
我用下面的代碼創建在我的應用程序不同的場景不同AlertDialogs:問題:AlertDialog看起來不同的Nexus設備上:
public static void showAlertDialog(Context activityContext, DialogType type, CharSequence title, CharSequence msg, CharSequence posText,
DialogInterface.OnClickListener posOnClickListener, CharSequence negText, DialogInterface.OnClickListener negOnClickListener, boolean isCancelable, int iconResId) {
try {
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activityContext);
if (JavaUtils.isNotNullNotEmptyNotWhiteSpaceOnly((String) title))
alertDialogBuilder.setTitle(title);
if (JavaUtils.isNotNullNotEmptyNotWhiteSpaceOnly((String) msg))
alertDialogBuilder.setMessage(msg);
if (JavaUtils.isNotNullNotEmptyNotWhiteSpaceOnly((String) posText))
alertDialogBuilder.setPositiveButton(posText, posOnClickListener);
if (JavaUtils.isNotNullNotEmptyNotWhiteSpaceOnly((String) negText))
alertDialogBuilder.setNegativeButton(negText, negOnClickListener);
alertDialogBuilder.setCancelable(isCancelable);
// set alert icon
if (iconResId == 0) {
alertDialogBuilder.setIcon(type == DialogType.ERROR ? android.R.drawable.ic_dialog_alert : android.R.drawable.ic_dialog_info);
} else {
alertDialogBuilder.setIcon(iconResId);
}
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
} catch (Exception e) {
InfiLogger.w("showAlertDialog", e.toString(), e);
Crashlytics.logException(e);
}
}
在運行Lollipop
或更高AlertDialog
看起來是這樣的大多數設備雖然:
在Nexus
設備相同的運行代碼如下所示:
有人知道爲什麼會發生這種情況嗎?那麼解決這個問題的正確方法是什麼?
在此先感謝。
你在路過的'上下文activityContext'? – CommonsWare
@CommonsWare,在這個特定AlertDialog的情況下,傳遞的上下文是一個擴展FragmentActivity的Activity。 –
這感覺就像一個主題問題。由於您無論如何都需要它來處理配置更改,因此我建議您將這些內容從「靜態」方法移出並放入「DialogFragment」中,並查看是否有幫助。 – CommonsWare