一款简单带动画的Dialog(Kotlin)
中文 | English
| 信息弹窗 | 加载弹窗 |
|---|---|
![]() |
![]() |
| 中间列表弹窗 | 中间选择列表弹窗 |
|---|---|
![]() |
![]() |
| 底部列表弹窗 | 底部选择列表弹窗 |
|---|---|
![]() |
![]() |
| 隐私政策弹窗 |
|---|
![]() |
dependencies {
implementation 'com.dialog.wm:easydialog:1.0.1'
}
/**
* 构建设置
* @param animationTypeIn 进入动画(默认AnimationType.ZoomIn)
* @param animationTypeOut 退出动画(默认AnimationType.ZoomOut)
* @param dismissOnBack 点击返回建是否关闭Dialog(默认可以关闭)
* @param dismissOnTouch 触摸空白区域是否关闭Dialog(默认可以关闭)
*/
fun build(
animationTypeIn: AnimationType = AnimationType.ZoomIn,
animationTypeOut: AnimationType = AnimationType.ZoomOut,
dismissOnBack: Boolean = true,
dismissOnTouch: Boolean = true
)
/**
* 显示取消、确定Dialog
* @param title 标题
* @param msg 内容
* @param cancelText 左边按扭文字
* @param confirmText 右边按扭文字
* @param onConfirm 点击确定回调
*/
fun showMessageDialog(
title: String,
msg: String,
cancelText: String = "取消",
confirmText: String = "确认",
onConfirm: () -> Unit
)
/**
* 显示中间列表Dialog
* @param title 标题
* @param list 显示的列表集合
* @param iconIds 显示的图标集合
* @param checkedPosition 选中的位置,传-1为不选中
* @param primaryColor 文字主题颜色
* @param onItem 列表点击回调
*/
fun showCenterListDialog(
title: String,
list: Array<String>,
iconIds: IntArray? = null,
checkedPosition: Int = -1,
@ColorRes primaryColor: Int = R.color.lib_colorPrimary,
onItem: (position: Int, str: String) -> Unit
)
/**
* 显示底部列表Dialog
* @param title 标题
* @param list 显示的列表集合
* @param iconIds 显示的图标集合
* @param checkedPosition 选中的位置,传-1为不选中
* @param primaryColor 文字主题颜色
* @param onItem 列表点击回调
*/
fun showBottomListDialog(
title: String,
list: Array<String>,
iconIds: IntArray? = null,
checkedPosition: Int = -1,
@ColorRes primaryColor: Int = R.color.lib_colorPrimary,
onItem: (position: Int, str: String) -> Unit
)
/**
* 加载Dialog
* @param msg 显示的内容
* @param indicator 指示器样式
* @param indicatorColor 指示器颜色
*/
fun showLoadDialog(
msg: String,
indicator: String = IndicatorType.LINE_SCALE_PULSE_OUT_RAPID_INDICATOR,
@ColorRes indicatorColor: Int = R.color.lib_colorPrimary
)
/**
* 隐私政策dialog
* @param title 标题
* @param msg 显示的内容
* @param agreement 用户协议高亮显示
* @param privacy 隐私政策高亮显示
* @param onConfirm 确定回调
* @param onCancel 取消回调
* @param onAgreement 服务协议点击回调
* @param onPrivacy 隐私政策点击回调
*/
fun showPrivacyPolicy(
title: String,
msg: String,
agreement: String,
privacy: String,
confirmText: String,
cancelText: String,
onConfirm: () -> Unit,
onCancel: () -> Unit,
onAgreement: () -> Unit,
onPrivacy: () -> Unit
)
/**
* 关闭Dialog
*/
fun dismissDialog() {
dialog?.dismiss()
}
/**
* 关闭动画之后进行逻辑操作(防止抖动)
*/
fun dismissWithDialog(dismiss: () -> Unit) {
dialog?.dismissWith { dismiss() }
} //信息 Dialog
EasyDialog.build().showMessageDialog()
//加载 Dialog
EasyDialog.build().showLoadDialog()
//中间弹出列表 Dialog
EasyDialog.build().showCenterListDialog()
//底部弹出列表 Dialog
EasyDialog.build().showBottomListDialog()
//隐私政策 Dialog
EasyDialog.build().showPrivacyPolicy()| Loading |
|---|
![]() |
As seen above in the Demo, the indicators are as follows:
Row 1
BallPulseIndicatorBallGridPulseIndicatorBallClipRotateIndicatorBallClipRotatePulseIndicator
Row 2
SquareSpinIndicatorBallClipRotateMultipleIndicatorBallPulseRiseIndicatorBallRotateIndicator
Row 3
CubeTransitionIndicatorBallZigZagIndicatorBallZigZagDeflectIndicatorBallTrianglePathIndicator
Row 4
BallScaleIndicatorLineScaleIndicatorLineScalePartyIndicatorBallScaleMultipleIndicator
Row 5
BallPulseSyncIndicatorBallBeatIndicatorLineScalePulseOutIndicatorLineScalePulseOutRapidIndicator
Row 6
BallScaleRippleIndicatorBallScaleRippleMultipleIndicatorBallSpinFadeLoaderIndicatorLineSpinFadeLoaderIndicator
Row 7
TriangleSkewSpinIndicatorPacmanIndicatorBallGridBeatIndicatorSemiCircleSpinIndicator
Pulse, RubberBand, Shake, Swing, Wobble, Bounce, Tada, StandUp, Wave
BounceIn, BounceInDown, BounceInLeft, BounceInRight, BounceInUp
FlipInX, FlipOutX, FlipInY,FlipOutY
RotateIn, RotateInDownLeft, RotateInDownRight, RotateInUpLeft, RotateInUpRight
RotateOut, RotateOutDownLeft, RotateOutDownRight, RotateOutUpLeft, RotateOutUpRight
SlideInLeft, SlideInRight, SlideInUp, SlideInDown
SlideOutLeft, SlideOutRight, SlideOutUp, SlideOutDown
ZoomIn, ZoomInDown, ZoomInLeft, ZoomInRight, ZoomInUp
ZoomOut, ZoomOutDown, ZoomOutLeft, ZoomOutRight, ZoomOutUp
Copyright (C) wangmeng, EasyDialog Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.







