3

我创建了一个小应用程序,在它的清单中使用 'android:theme="@android:style/Theme.Dialog"'。这样,它将像对话框一样显示,因此背景将是半透明的并变暗。在活动的生命周期中,将显示另一个对话框。然而,在对话框被关闭后,背景会淡入一小段时间,然后再次淡出以匹配应用程序的主题。

我可以通过使用禁用此行为

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

但是使用它会导致对话框不会使活动变暗。

有没有办法实现所需的行为?

-Activity's background should be translucent and dimmed
-Dialog should dimm the activity's layout
-No fading when dialog is dismissed

完整代码:

public class DialogDimActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        Dialog d = new AlertDialog.Builder(this)
        .setNegativeButton("Close", null)
        .create();
    //  d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        d.show();
    }
}
4

0 回答 0