Android 自定义对话框背景不显示透明屏幕
Don't show transparent screen on background of custom Dialog in Android
我不想在 dialog
打开时显示透明背景。你能推荐一个有效的方法吗?
请检查我的实现:
我使用自己的布局创建了一个自定义对话框,并在创建对话框时添加了以下代码。
dialog = new Dialog(mActivity, R.style.DialogTransparentTheme);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
我的主题风格:
<style name="DialogTransparentTheme" parent="android:Theme">
<item name="android:textAllCaps">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:colorControlNormal">@color/app_txt_color</item>
<item name="android:colorControlActivated">@color/app_txt_gray_color</item>
<item name="android:colorControlHighlight">@color/app_txt_gray_color</item>
</style>
@Usman 这是我的自定义对话框实现,对我来说效果很好:
View view = mActivity.getLayoutInflater().inflate(R.layout.common_alert_dialog_layout, null);
TextView titleTextView = (TextView) view.findViewById(R.id.common_alert_dialog_title);
TextView messageTextView = (TextView) view.findViewById(R.id.common_alert_dialog_message);
Button okButton = (Button) view.findViewById(R.id.btn_alert_dialog_ok_button);
titleTextView.setText(getString(R.string.dialog_app_name_header));
messageTextView.setText(getString(R.string.walk_no_network));
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
// Do your action::
}
});
dialog.setContentView(view);
dialog.setCanceledOnTouchOutside(true);
dialog.setCancelable(true);
dialog.show();
dialog.getWindow().setLayout((int) getResources().getDimension(R.dimen.common_dialog_width),
(int) getResources().getDimension(R.dimen.common_diaog_height));
return dialog;
将以上代码附加到此对话框。
我不想在 dialog
打开时显示透明背景。你能推荐一个有效的方法吗?
请检查我的实现:
我使用自己的布局创建了一个自定义对话框,并在创建对话框时添加了以下代码。
dialog = new Dialog(mActivity, R.style.DialogTransparentTheme);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
我的主题风格:
<style name="DialogTransparentTheme" parent="android:Theme">
<item name="android:textAllCaps">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:colorControlNormal">@color/app_txt_color</item>
<item name="android:colorControlActivated">@color/app_txt_gray_color</item>
<item name="android:colorControlHighlight">@color/app_txt_gray_color</item>
</style>
@Usman 这是我的自定义对话框实现,对我来说效果很好:
View view = mActivity.getLayoutInflater().inflate(R.layout.common_alert_dialog_layout, null);
TextView titleTextView = (TextView) view.findViewById(R.id.common_alert_dialog_title);
TextView messageTextView = (TextView) view.findViewById(R.id.common_alert_dialog_message);
Button okButton = (Button) view.findViewById(R.id.btn_alert_dialog_ok_button);
titleTextView.setText(getString(R.string.dialog_app_name_header));
messageTextView.setText(getString(R.string.walk_no_network));
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
// Do your action::
}
});
dialog.setContentView(view);
dialog.setCanceledOnTouchOutside(true);
dialog.setCancelable(true);
dialog.show();
dialog.getWindow().setLayout((int) getResources().getDimension(R.dimen.common_dialog_width),
(int) getResources().getDimension(R.dimen.common_diaog_height));
return dialog;
将以上代码附加到此对话框。