有什么方法可以在活动工具栏下添加transculent对话框? 这是我的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?colorPrimary"
android:minHeight="?attr/actionBarSize"/>
<WebView
android:id="@+id/sa"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
和对话框的代码:
public class TransparentProgressDialog extends DialogFragment {
private boolean mDialogCancelable = false;
private boolean mBackButtonPressed = false;
private OnDismissAfterBackPressed mOnDismissAfterBackPressed = null;
public static TransparentProgressDialog getInstance() {
TransparentProgressDialog transparentProgressDialog = new TransparentProgressDialog();
return transparentProgressDialog;
}
public static void dismiss(TransparentProgressDialog dialog) {
if (dialog != null) {
try {
dialog.dismissAllowingStateLoss();
} catch (Exception e) {
try {
dialog.dismiss();
} catch (Exception ex) {
Timber.e(ex, "TransparentProgressDialog dismiss");
}
}
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setCancelable(mDialogCancelable);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = new Dialog(getActivity(), android.R.style.Theme_Translucent_NoTitleBar);
dialog.setContentView(R.layout.transparent_progress_bar);
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK) {
Timber.d("back button pressed");
mBackButtonPressed = true;
}
return false;
}
});
return dialog;
}
@Override
public void onStart() {
super.onStart();
Window window = getDialog().getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.dimAmount = 0.7f;
params.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(params);
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (mDialogCancelable && mBackButtonPressed && mOnDismissAfterBackPressed != null) {
mOnDismissAfterBackPressed.backPressed();
}
}
public TransparentProgressDialog setCancelableDialog(boolean cancelable) {
this.mDialogCancelable = cancelable;
return this;
}
public TransparentProgressDialog setOnDismissAfterBackPressed(OnDismissAfterBackPressed onDismissAfterBackPressed) {
this.mOnDismissAfterBackPressed = onDismissAfterBackPressed;
return this;
}
public interface OnDismissAfterBackPressed {
void backPressed();
}
}
此对话框始终位于我的工具栏上。我怎么能避免这种情况?