公司的Android项目中,用到了QMUI的组件库。在做一个CustomDialog
的时候,按照以前的写法自信的写下:
QMUIDialog.CustomDialogBuilder customDialogBuilder = new QMUIDialog.CustomDialogBuilder(mContext);
QMUIDialog mChooseProjectDialog = customDialogBuilder.setLayout(R.layout.dialog_open_project
.setTitle("请选择项目")
.setCanceledOnTouchOutside(false)
.setCancelable(false)
.create()
结果却报错了,错误信息当时忘记截图了,大概就是有个名字带有Space
的View
找不到。
猜测是AndroidX中名字改变了,导致添加Title
的时候找不到控件。
解决方法很简单,按照QMUI
的写法,自己重写一下onCreateTitle()
方法即可:
QMUIDialog.CustomDialogBuilder customDialogBuilder = new QMUIDialog.CustomDialogBuilder(mContext) {
@Override
protected void onCreateTitle(QMUIDialog dialog, ViewGroup parent, Context context) {
super.onCreateTitle(dialog, parent, context);
if (hasTitle()) {
mTitleView.getPaint().setFakeBoldText(true);
mTitleView.getPaint().setTextSize(QMUIDisplayHelper.sp2px(mContext, 18));
}
}
};
QMUIDialog mChooseProjectDialog = customDialogBuilder.setLayout(R.layout.dialog_open_project)
.setTitle("请选择项目")
.setCanceledOnTouchOutside(false)
.setCancelable(false)
.create();