美文网首页
android模态对话框

android模态对话框

作者: 老中医167788 | 来源:发表于2019-03-09 11:13 被阅读0次

    1.布局文件
    dialog_relation_view.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="334dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:background="@mipmap/dialog_xxx"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
    
            <TextView
                android:id="@+id/textView35"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginBottom="16dp"
                android:text="淘宝渠道认证"
                android:textColor="#ff000000"
                android:textSize="20sp"
                app:layout_constraintBottom_toTopOf="@+id/textView36"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
    
            <TextView
                android:id="@+id/textView36"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="16dp"
                android:layout_marginBottom="16dp"
                android:text="由于淘宝需对渠道加强精细化管理,邀请您进行淘宝身份认证操作,届时没有进行身份认证的,将可能无法分享推广淘宝商品功能,请您提前认证。"
                android:textColor="#ff000000"
                android:textSize="15sp"
                app:layout_constraintBottom_toTopOf="@+id/button5"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
    
            <TextView
                android:id="@+id/button5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginBottom="16dp"
                android:background="@mipmap/dialog_first_btn"
                android:gravity="center"
                android:text="稍后再说"
                android:textColor="#ffffffff"
                android:textSize="15sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
    
            <TextView
                android:id="@+id/textView37"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="16dp"
                android:layout_marginBottom="16dp"
                android:background="@mipmap/dialog_second_btn"
                android:gravity="center"
                android:text="马上认证"
                android:textColor="#ffffffff"
                android:textSize="15sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />
        </android.support.constraint.ConstraintLayout>
    
    </android.support.constraint.ConstraintLayout>
    
    1. 类文件
      DialogRelationAuth.kt
    package com.hongtang.baicai.dialogs
    
    import android.app.Dialog
    import android.content.Context
    import android.view.LayoutInflater
    import android.view.View
    import com.hongtang.baicai.R
    import com.hongtang.baicai.listener.IOnClickListener
    
    class DialogRelationAuth(context:Context) : Dialog(context,R.style.dialog){
        private var mCancelClick:IOnClickListener<View>? = null
        private var mConfirmClick:IOnClickListener<View>? = null
        init{
            val mView = LayoutInflater.from(context).inflate(
                    R.layout.dialog_relation_view, null)
            mView.findViewById<View>(R.id.button5).setOnClickListener {
                mCancelClick?.onClick(it)
            }
            mView.findViewById<View>(R.id.textView37).setOnClickListener {
                mConfirmClick?.onClick(it)
            }
            super.setContentView(mView)
        }
    
        fun setOnCancelClickListener(listener:IOnClickListener<View>){
            mCancelClick = listener
        }
    
        fun setOnConfirmClickListener(listener:IOnClickListener<View>){
            mConfirmClick = listener
        }
    }
    

    3.使用

    authDialog = new DialogRelationAuth(getActivity());
    authDialog.setCancelable(false);
    authDialog.setOnCancelClickListener(v ->
             authDialog.dismiss()
    );
    authDialog.setOnConfirmClickListener(v -> {
        // xxoo
        // 获取对话框的Window对象
        Window window = authDialog.getWindow();
        WindowManager.LayoutParams layoutParams = window.getAttributes();
         // 透明度的范围为:0.0f-1.0f;0.0f表示完全透明,1.0f表示完全不透明(系统默认的就是这个)。
        layoutParams.alpha = 1.0f;
        layoutParams.width = getResources().getDisplayMetrics().widthPixels * 9 / 10;
        //设置对话框在屏幕的底部显示,当然还有上下左右,任意位置
        window.setGravity(Gravity.CENTER);
        window.setAttributes(layoutParams);
        authDialog.show();
    }
    

    4.样式文件
    styles.xml

    <style name="dialog" parent="@android:style/Theme.Dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:background">@android:color/transparent</item>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:backgroundDimEnabled">true</item>
            <item name="android:backgroundDimAmount">0.6</item>
        </style>
    

    5.效果图
    ![截屏20190309_111055B@6c4c69b.jpg

    相关文章

      网友评论

          本文标题:android模态对话框

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