/**
*自定义dialog基类无边框,不标题栏;
*/
public abstract class BaseDialog extends Dialog {
protected Context mContext;
public BaseDialog(Context context) {
super(context, R.style.ShareDialog);//将下面的主题赋值到自己的项目中
this.mContext = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
WindowManager.LayoutParams params = getWindow().getAttributes();
params.height = LayoutParams.MATCH_PARENT;
params.width = LayoutParams.MATCH_PARENT;
params.gravity = Gravity.CENTER;
getWindow().setAttributes(params);
//动画效果可自己定义
getWindow().setWindowAnimations(R.style.ConfirmDialogAnimstyle);
//把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// // 透明状态栏
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// // 透明导航栏
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// }
}
//点击dialog或者以外的地方,dialog消失;
protected void addClickCancel() {
View view = findViewById(R.id.dialog_content);//必须在自定义的最外层布局添加id为dialog_content,否则不响应点击消失事件;
if (view != null) {
view.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}
}
}
<!-- 对话框样式 背景变暗 -->
<style name="ShareDialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
自定义一个dialog继承baseDialog布局自己随便定义什么样的都可以;
例如下面的:
public class DialogMaterialMenu extends BaseDialog {
Context context;
public static TextView waitToApplay;
public static TextView latestApplay;
public static TextView sort;
public DialogMaterialMenu(Context context) {
super(context);
this.context=ICMApplication.mContext;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_layout_material_dialog);//在这里设置自己需要显示的布局;
//初始化控件
initView();
}
private void initView() {
addClickCancel();//一定要注意此处调一下,让点击屏幕dialog消失
waitToApplay = (TextView) findViewById(R.id.waitToApplay);
latestApplay = (TextView) findViewById(R.id.latestApplay);
sort = (TextView) findViewById(R.id.sort);
}
/**
* 如果有监听事件,注册控件的监听事件,或者设置控件显示的内容;
*/
}