BaseDialog

    xiaoxiao2021-03-25  63

    /** *自定义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); } /** * 如果有监听事件,注册控件的监听事件,或者设置控件显示的内容; */ }
    转载请注明原文地址: https://ju.6miu.com/read-33326.html

    最新回复(0)