自定义dialog的方式有两种
1、扩展Dialog
如果不需要dialog默认的title栏,可以通过设置 requestWindowFeature
可以设置setCanceledOnTouchOutside实现单击空白处关掉
public class LoginForgetDialog extends Dialog { public LoginForgetDialog(final Context context) { super(context); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.login_forget_password); View view = findViewById(R.id.layout); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //do sth dismiss(); } }); setCanceledOnTouchOutside(true); } }
2、用Activity 配置的时候设置主题 dialog
Activity配置的 设置 android:theme="@android:style/Theme.Dialog"
public abstract class DialogActivity extends BaseActivity { protected void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { setFinishOnTouchOutside(true); } catch (Throwable e) { e.printStackTrace(); } } }