Skip to content

Commit edd2347

Browse files
committed
refactor: 替换visualeffect和shadowlayout依赖
1 parent 83dbe86 commit edd2347

File tree

64 files changed

+637
-1759
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+637
-1759
lines changed

README.md

+31-44
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@ Android稳定高效的浮层创建管理框架。
22

33
可实现Dialog,PopupWindow,引导层,悬浮按钮,通知,吐司,安全键盘等效果。
44

5-
6-
75
[GitHub主页](https://github.com/goweii/Layer)
86

97
[Demo下载](https://gitee.com/goweii/Layer/raw/master/app/demo/demo.apk)
108

11-
12-
139
# 简介
1410

1511
如果你的App用的是单Activity架构,那么这个就是系统Dialog/PopupWindow/Toast的完美替代。而且可以实现悬浮按钮和引导层等一些列功能。
@@ -20,36 +16,34 @@ Android稳定高效的浮层创建管理框架。
2016
- 链式调用
2117
- 支持自由扩展
2218
- 实现几种常用效果
23-
- DialogLayer:AlertDialog/BottomSheetDialog
24-
- 占用区域不会超过当前Activity避免导航栏遮挡
25-
- 支持自定义大小和显示位置
26-
- 支持自定义数据绑定
27-
- 支持自定义进出场动画
28-
- 支持自定义背景颜色/图片/高斯模糊
29-
- 支持在Activity的onCreate生命周期弹出
30-
- 支持从ApplicationContext中弹出
31-
- 支持拖拽关闭
32-
- 支持不拦截外部事件
33-
- PopupLayer:PopupWindow
34-
- 拥有Dialog效果特性
35-
- 支持跟随目标View移动
36-
- ToastLayer:吐司
37-
- 支持自定义图标和文字
38-
- 支持自定义显示时长
39-
- 支持自定义位置
40-
- 支持自定义背景资源和颜色
41-
- 支持自定义透明度
42-
- 支持自定义进出场动画
43-
- GuideLayer:引导层
44-
- 支持自定义遮罩颜色和圆角半径
45-
- OverlayLayer:悬浮按钮
46-
- 支持自定义吸附边
47-
- 支持自定义正常和低姿态2中模式
48-
- 支持自定义低姿态显示效果
49-
- NotificationLayer:通知
50-
- 支持滑动关闭
51-
52-
19+
- DialogLayer:AlertDialog/BottomSheetDialog
20+
- 占用区域不会超过当前Activity避免导航栏遮挡
21+
- 支持自定义大小和显示位置
22+
- 支持自定义数据绑定
23+
- 支持自定义进出场动画
24+
- 支持自定义背景颜色/图片/高斯模糊
25+
- 支持在Activity的onCreate生命周期弹出
26+
- 支持从ApplicationContext中弹出
27+
- 支持拖拽关闭
28+
- 支持不拦截外部事件
29+
- PopupLayer:PopupWindow
30+
- 拥有Dialog效果特性
31+
- 支持跟随目标View移动
32+
- ToastLayer:吐司
33+
- 支持自定义图标和文字
34+
- 支持自定义显示时长
35+
- 支持自定义位置
36+
- 支持自定义背景资源和颜色
37+
- 支持自定义透明度
38+
- 支持自定义进出场动画
39+
- GuideLayer:引导层
40+
- 支持自定义遮罩颜色和圆角半径
41+
- OverlayLayer:悬浮按钮
42+
- 支持自定义吸附边
43+
- 支持自定义正常和低姿态2中模式
44+
- 支持自定义低姿态显示效果
45+
- NotificationLayer:通知
46+
- 支持滑动关闭
5347

5448
# 截图
5549

@@ -59,12 +53,8 @@ Android稳定高效的浮层创建管理框架。
5953
| ------------------------------------------------------------ | ------------------------------------------------------------ |
6054
| ![20210610_190654.gif](https://i.loli.net/2021/06/10/aVoWBmGqtE1HkUP.gif) | ![20210610_190715.gif](https://i.loli.net/2021/06/10/npHzPjwdqfKBDQt.gif) |
6155

62-
63-
6456
# 使用说明
6557

66-
67-
6858
## 集成
6959

7060
![](https://img.shields.io/badge/Downloads%20Week-1.4k-green) ![](https://img.shields.io/badge/Downloads%20Month-7.3K-blue)
@@ -83,6 +73,7 @@ allprojects {
8373
- ### 添加依赖
8474

8575
[点击查看最新版本号](https://github.com/goweii/Layer/releases)
76+
8677
```groovy
8778
// build.gradle(Module:)
8879
dependencies {
@@ -101,18 +92,14 @@ dependencies {
10192

10293
- ### 一些问题/建议
10394

104-
- 建议按需引入
105-
106-
- layer-startup依赖于Jetpack Startup(需要自行引入)。
107-
95+
- 建议按需引入
10896

97+
- layer-startup依赖于Jetpack Startup(需要自行引入)。
10998

11099
## 更新说明
111100

112101
[点击查看](https://github.com/goweii/Layer/releases)
113102

114-
115-
116103
# 如果你觉得还不错,就请我喝杯咖啡吧~
117104

118105
| 微信 | 支付宝 | QQ |

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ buildscript {
55
androidx_core_ktx_version = "1.6.0"
66
androidx_startup_version = "1.0.0"
77
cardview_version = "1.0.0"
8-
visual_effect_version = "1.0.10"
8+
visual_effect_version = "1.0.0"
9+
shadowlayout_version = "1.0.0"
910
}
1011
ext {
1112
android_application_id = "per.goweii.layer.simple"
@@ -37,7 +38,6 @@ allprojects {
3738
jcenter()
3839
mavenCentral()
3940
maven { url "https://jitpack.io" }
40-
maven { url "https://gitee.com/goweii/maven-repository/raw/master/releases/" }
4141
}
4242
}
4343

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.core.ktx">
2+
<manifest package="per.goweii.layer.core.ktx">
43

54
</manifest>

layer-core-ktx/src/main/java/per/goweii/layer/core/ktx/Layer.kt

+27-13
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,37 @@ import per.goweii.layer.core.listener.DefaultOnDismissListener
88
import per.goweii.layer.core.listener.DefaultOnShowListener
99
import per.goweii.layer.core.listener.DefaultOnVisibleChangedListener
1010

11-
fun <T : Layer> T.onClick(@IdRes viewId: Int, onClickListener: T.(view: View) -> Unit) = this.apply {
12-
this.addOnClickListener(Layer.OnClickListener { _, v -> this.onClickListener(v) }, viewId)
13-
}
14-
15-
fun <T : Layer> T.onClickToDismiss(@IdRes viewId: Int, onClickListener: (T.(view: View) -> Unit)? = null) = this.apply {
11+
fun <T : Layer> T.onClick(@IdRes viewId: Int, onClickListener: T.(view: View) -> Unit) =
12+
this.apply {
13+
this.addOnClickListener(Layer.OnClickListener { _, v -> this.onClickListener(v) }, viewId)
14+
}
15+
16+
fun <T : Layer> T.onClickToDismiss(
17+
@IdRes viewId: Int,
18+
onClickListener: (T.(view: View) -> Unit)? = null
19+
) = this.apply {
1620
onClickListener?.let {
1721
this.addOnClickToDismissListener(Layer.OnClickListener { _, v -> this.it(v) }, viewId)
1822
} ?: addOnClickToDismissListener(null, viewId)
1923
}
2024

21-
fun <T : Layer> T.onLongClick(@IdRes viewId: Int, onLongClickListener: T.(view: View) -> Boolean) = this.apply {
22-
this.addOnLongClickListener(Layer.OnLongClickListener { _, v -> this.onLongClickListener(v) }, viewId)
23-
}
24-
25-
fun <T : Layer> T.onLongClickToDismiss(@IdRes viewId: Int, onLongClickListener: (T.(view: View) -> Boolean)? = null) = this.apply {
25+
fun <T : Layer> T.onLongClick(@IdRes viewId: Int, onLongClickListener: T.(view: View) -> Boolean) =
26+
this.apply {
27+
this.addOnLongClickListener(
28+
Layer.OnLongClickListener { _, v -> this.onLongClickListener(v) },
29+
viewId
30+
)
31+
}
32+
33+
fun <T : Layer> T.onLongClickToDismiss(
34+
@IdRes viewId: Int,
35+
onLongClickListener: (T.(view: View) -> Boolean)? = null
36+
) = this.apply {
2637
onLongClickListener?.let {
27-
this.addOnLongClickToDismissListener(Layer.OnLongClickListener { _, v -> this.it(v) }, viewId)
38+
this.addOnLongClickToDismissListener(
39+
Layer.OnLongClickListener { _, v -> this.it(v) },
40+
viewId
41+
)
2842
} ?: addOnLongClickToDismissListener(null, viewId)
2943
}
3044

@@ -85,8 +99,8 @@ fun <T : Layer> T.onPostDismiss(onPostDismiss: T.() -> Unit) = this.apply {
8599
}
86100

87101
fun <T : Layer, R : Animator?> T.animator(
88-
onIn: T.(target: View) -> R,
89-
onOut: T.(target: View) -> R
102+
onIn: T.(target: View) -> R,
103+
onOut: T.(target: View) -> R
90104
) = this.apply {
91105
this.setAnimator(object : Layer.AnimatorCreator {
92106
override fun createInAnimator(target: View): Animator? {
+1-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.core">
4-
</manifest>
2+
<manifest package="per.goweii.layer.core"></manifest>

layer-core/src/main/java/per/goweii/layer/core/ActivityHolder.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public Activity getCurrentActivity() {
7474
return stack.get(stack.size() - 1).get();
7575
}
7676

77-
private class ActivityLifecycleCallbacksImpl implements Application.ActivityLifecycleCallbacks{
77+
private class ActivityLifecycleCallbacksImpl implements Application.ActivityLifecycleCallbacks {
7878
@Override
7979
public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {
8080
mActivityStack.add(new WeakReference<>(activity));

layer-core/src/main/java/per/goweii/layer/core/FrameLayer.java

-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
import android.annotation.SuppressLint;
44
import android.content.Context;
55
import android.content.res.Configuration;
6-
import android.view.KeyEvent;
76
import android.view.View;
87
import android.view.ViewGroup;
98
import android.view.ViewParent;
109
import android.widget.FrameLayout;
1110

12-
import androidx.annotation.CallSuper;
1311
import androidx.annotation.IntRange;
1412
import androidx.annotation.NonNull;
1513
import androidx.annotation.Nullable;

layer-core/src/main/java/per/goweii/layer/core/utils/Utils.java

-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515

1616
import androidx.annotation.NonNull;
1717
import androidx.annotation.Nullable;
18-
import androidx.core.graphics.Insets;
19-
import androidx.core.view.ViewCompat;
20-
import androidx.core.view.WindowInsetsCompat;
21-
import androidx.core.view.WindowInsetsControllerCompat;
2218

2319
public final class Utils {
2420

layer-core/src/main/res/values/styles.xml

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3+
34
<style name="AnyLayerActivityTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
45
<item name="android:windowActionBar">false</item>
56
<item name="android:windowNoTitle">true</item>

layer-design-cupertino/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ dependencies {
1414
api project(":layer-keyboard")
1515
api project(":layer-design-res")
1616
api project(":layer-visualeffectview")
17+
api "com.github.goweii:ShadowLayout:$shadowlayout_version"
1718
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.design.cupertino">
2+
<manifest package="per.goweii.layer.design.cupertino">
43

54
</manifest>

layer-design-cupertino/src/main/java/per/goweii/layer/design/cupertino/CupertinoAlertLayer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import per.goweii.layer.dialog.DialogLayer;
2727
import per.goweii.layer.visualeffectview.BackdropBlurView;
2828
import per.goweii.layer.visualeffectview.BackdropIgnoreView;
29-
import per.goweii.layer.visualeffectview.RoundedShadowLayout;
29+
import per.goweii.roundedshadowlayout.RoundedShadowLayout;
3030

3131
public class CupertinoAlertLayer extends DialogLayer {
3232
public CupertinoAlertLayer(@NonNull Context context) {

layer-design-cupertino/src/main/java/per/goweii/layer/design/cupertino/CupertinoNotificationLayer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import per.goweii.layer.notification.NotificationLayer;
3030
import per.goweii.layer.visualeffectview.BackdropBlurView;
3131
import per.goweii.layer.visualeffectview.BackdropIgnoreView;
32-
import per.goweii.layer.visualeffectview.RoundedShadowLayout;
32+
import per.goweii.roundedshadowlayout.RoundedShadowLayout;
3333

3434
public class CupertinoNotificationLayer extends NotificationLayer {
3535
public CupertinoNotificationLayer(@NonNull Context context) {

layer-design-cupertino/src/main/java/per/goweii/layer/design/cupertino/CupertinoPopoverLayer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import per.goweii.layer.core.anim.AnimatorHelper;
1717
import per.goweii.layer.popup.PopupLayer;
18-
import per.goweii.layer.visualeffectview.PopupShadowLayout;
18+
import per.goweii.popupshadowlayout.PopupShadowLayout;
1919

2020
public class CupertinoPopoverLayer extends PopupLayer {
2121
public CupertinoPopoverLayer(@NonNull Context context) {
@@ -104,7 +104,7 @@ protected void onInitContent() {
104104
content.setArrowWidth(getConfig().mArrowWidth);
105105
content.setArrowHeight(getConfig().mArrowHeight);
106106
content.setCornerRadius(getConfig().mCornerRadius);
107-
content.setSolidColor(getConfig().mSolidColor);
107+
content.setBackgroundColor(getConfig().mSolidColor);
108108
content.setShadowColor(getActivity().getResources().getColor(R.color.layer_design_cupertino_color_shadow));
109109
content.setShadowRadius(getActivity().getResources().getDimension(R.dimen.layer_design_cupertino_alert_shadow_radius));
110110
content.setShadowOffsetY(getActivity().getResources().getDimension(R.dimen.layer_design_cupertino_alert_shadow_offset_y));
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.design.material">
2+
<manifest package="per.goweii.layer.design.material">
43

54
</manifest>

layer-design-material/src/main/java/per/goweii/layer/design/material/MaterialDialogLayer.java

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import android.text.TextUtils;
77
import android.view.LayoutInflater;
88
import android.view.View;
9-
import android.widget.Button;
109
import android.widget.LinearLayout;
1110
import android.widget.TextView;
1211

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<color name="layer_design_material_dialog_btn_bg_normal">@color/layer_design_res_color_surface</color>
3+
<color name="layer_design_material_dialog_btn_bg_normal">@color/layer_design_res_color_surface
4+
</color>
45
<color name="layer_design_material_dialog_btn_bg_pressed">#14ffffff</color>
56
</resources>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<color name="layer_design_material_dialog_btn_bg_normal">@color/layer_design_res_color_surface</color>
3+
<color name="layer_design_material_dialog_btn_bg_normal">@color/layer_design_res_color_surface
4+
</color>
45
<color name="layer_design_material_dialog_btn_bg_pressed">#14000000</color>
56
</resources>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.design.res">
2+
<manifest package="per.goweii.layer.design.res">
43

54
</manifest>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="per.goweii.layer.dialog.ktx">
2+
<manifest package="per.goweii.layer.dialog.ktx">
43

54
</manifest>

0 commit comments

Comments
 (0)