美文网首页
对话框(dialog)的种种

对话框(dialog)的种种

作者: 我就是杨过 | 来源:发表于2018-04-20 16:15 被阅读0次

不做概念性介绍 只写例子和遇到的问题

例子1

解决的问题是
1 MaterialDialog设置自定义布局的时候 设置title和按钮时没有效果的,因为自定义布局覆盖了MaterialDialog 的布局,所以只能自己在自定义布局中将 title 和 两个按钮 画出来 然后设置值和事件监听
2 editText在dialog中无法输入的问题
            MaterialDialog dialog = new MaterialAlertDialog(this);
                               //设置自定义布局
            dialog.setContentView(R.layout.view_group_chat_details_group_name_dialog);
             View customView = dialog.getCustomView();
                       //我在自定义布局中放了个editText
            MinMaxEditText editText = customView.findViewById(R.id.group_name_change_et);
            DinTextView saveButton = customView.findViewById(R.id.group_name_save);
            saveButton.setOnClickListener(v -> {
                model.handleGroupNameChange(editText.getText());
                dialog.dismiss();
            });
            DinTextView cancelButton = customView.findViewById(R.id.group_name_cancel);
            cancelButton.setOnClickListener(v -> dialog.dismiss());

            //设置dialog 显示的时候 调起键盘  miss的时候  隐藏键盘
            dialog.setOnShowListener(dialogInterface -> KeypadUtils.showSoftKeyboard(editText));
            dialog.setOnCancelListener(dialogInterface -> KeypadUtils.hideSoftKeyboard(editText));
            // 这句代码解决了  editText 在dialog中的时候 无法输入的问题
            dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
            dialog.show();
布局如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <com.grindrapp.android.view.DinTextView
        android:id="@+id/group_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textColor="@color/grindr_pure_black"
        android:text="@string/chat_group_details_group_name"
        android:textStyle="bold"
        android:layout_alignParentTop="true"
        android:layout_marginTop="25dp"
        android:layout_marginLeft="27dp"
        android:layout_alignParentLeft="true"/>

    <com.grindrapp.android.view.MinMaxEditText
        android:id="@+id/group_name_change_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_below="@id/group_name"
        android:layout_alignLeft="@+id/group_name"
        android:layout_marginRight="29dp"
        app:charLimit="30"
        app:minMaxEditTextColor="@color/grindr_grey_5"/>

    <com.grindrapp.android.view.DinTextView
        android:id="@+id/group_name_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/grindr_grey_3"
        android:textSize="16sp"
        android:text="@string/cancel"
        android:layout_alignBottom="@+id/group_name_save"
        android:layout_toLeftOf="@+id/group_name_save"
        android:layout_marginRight="28dp"/>

    <com.grindrapp.android.view.DinTextView
        android:id="@+id/group_name_save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="@color/grindr_goldenrod"
        android:text="@string/ok"
        android:layout_marginTop="33dp"
        android:layout_marginBottom="29dp"
        android:layout_marginRight="29dp"
        android:layout_below="@+id/group_name_change_et"
        android:layout_alignParentRight="true"/>
</RelativeLayout>

相关文章

网友评论

      本文标题:对话框(dialog)的种种

      本文链接:https://www.haomeiwen.com/subject/ccczkftx.html