@@ -5,13 +5,16 @@ import android.view.LayoutInflater
5
5
import android.view.View
6
6
import androidx.core.view.ViewCompat
7
7
import androidx.core.view.WindowInsetsCompat
8
+ import androidx.lifecycle.lifecycleScope
8
9
import cn.jailedbird.edgeutils.EdgeUtils
9
10
import cn.jailedbird.edgeutils.EdgeUtils.edgeHasNavigationBar
10
11
import cn.jailedbird.edgeutils.EdgeUtils.edgeHasStatusBar
11
12
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideNavigationBar
12
13
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideStatusBar
13
14
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideSystemBar
14
15
import cn.jailedbird.edgeutils.EdgeUtils.edgeIsNavigationBarLight
16
+ import cn.jailedbird.edgeutils.EdgeUtils.edgeNavigationBarHeight
17
+ import cn.jailedbird.edgeutils.EdgeUtils.edgeNavigationBarHeightIgnoringVisibility
15
18
import cn.jailedbird.edgeutils.EdgeUtils.edgeSetNavigationBarColor
16
19
import cn.jailedbird.edgeutils.EdgeUtils.edgeSetNavigationBarLight
17
20
import cn.jailedbird.edgeutils.EdgeUtils.edgeShowNavigationBar
@@ -22,6 +25,7 @@ import cn.jailedbird.edgeutils.paddingTopSystemWindowInsets
22
25
import com.blankj.utilcode.util.BarUtils
23
26
import com.gyf.immersionbar.sample.R
24
27
import com.gyf.immersionbar.sample.databinding.ActivityParamsBinding
28
+ import kotlinx.coroutines.launch
25
29
26
30
class ParamsActivity : BaseViewBindingActivity <ActivityParamsBinding >() {
27
31
@@ -31,65 +35,44 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
31
35
@SuppressLint(" SetTextI18n" )
32
36
override fun initView () {
33
37
super .initView()
34
- // 状态栏视觉冲突解决
35
38
binding.mEdgeLayout.paddingTopSystemWindowInsets()
36
39
binding.root.paddingBottomSystemWindowInsets()
37
40
edgeSetNavigationBarLight(false )
38
41
edgeSetNavigationBarColor(R .color.btn13)
39
42
40
- // 底部添加margin
41
- // binding.root.marginBottomSystemWindowInsets()
42
- // 设置状态栏颜色
43
- // edgeSetNavigationBarColor(R.color.btn13)
44
- initViewAgain()
45
- }
46
-
47
- private fun initViewAgain () {
48
- binding.mTvHasStatus.post {
49
- binding.mTvHasStatus.text = getText(
50
- " 是否有StatusBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .hasStatusBar(this )
51
- )
52
- }
53
-
54
- binding.mTvStatus.post {
55
- binding.mTvStatus.text = getText(
56
- " StatusBar Height(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .statusBarHeight(
57
- this
58
- )
59
- )
60
- }
61
-
62
- binding.mTvStatusHide.post {
63
- binding.mTvStatusHide.text = getText(
64
- " StatusBar Height(不管是否隐藏)(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .statusBarHeightIgnoringVisibility(
65
- this
66
- )
67
- )
43
+ lifecycleScope.launch {
44
+ if (edgeHasStatusBar() && edgeHasNavigationBar()) {
45
+ edgeHideSystemBar()
46
+ } else {
47
+ edgeShowSystemBar()
48
+ }
49
+ initViewAgain()
68
50
}
51
+ }
69
52
70
- binding.mTvHasNav.post {
71
- binding.mTvHasNav.text = getText(
72
- " 是否有NavigationBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .hasNavigationBar(
73
- this
74
- )
53
+ private suspend fun initViewAgain () {
54
+ binding.mTvHasStatus.text = getText(
55
+ " 是否有StatusBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .hasStatusBar(this @ParamsActivity)
56
+ )
57
+ binding.mTvStatus.text = getText(
58
+ " StatusBar Height(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .statusBarHeight(
59
+ this @ParamsActivity
75
60
)
76
- }
77
-
78
- binding.mTvNav.post {
79
- binding.mTvNav.text = getText(
80
- " NavigationBar Height:(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .navigationBarHeight(
81
- this
82
- )
61
+ )
62
+ binding.mTvStatusHide.text = getText(
63
+ " StatusBar Height(不管是否隐藏)(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .statusBarHeightIgnoringVisibility(
64
+ this @ParamsActivity
83
65
)
84
- }
85
-
86
- binding.mTvNavHide.post {
87
- binding.mTvNavHide.text = getText(
88
- " NavigationBar Height(不管是否隐藏):(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils .navigationBarHeightIgnoringVisibility(
89
- this
90
- )
91
- )
92
- }
66
+ )
67
+ binding.mTvHasNav.text = getText(
68
+ " 是否有NavigationBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeHasNavigationBar()
69
+ )
70
+ binding.mTvNav.text = getText(
71
+ " NavigationBar Height:(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeNavigationBarHeight()
72
+ )
73
+ binding.mTvNavHide.text = getText(
74
+ " NavigationBar Height(不管是否隐藏):(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeNavigationBarHeightIgnoringVisibility()
75
+ )
93
76
}
94
77
95
78
@SuppressLint(" SetTextI18n" )
@@ -103,7 +86,6 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
103
86
)
104
87
windowInsetsCompat
105
88
}
106
- /* ImmersionBar(this).barParams*/
107
89
BarUtils .getStatusBarHeight()
108
90
/* 调整状态栏前景色*/
109
91
binding.mTvStatusDark.setOnClickListener {
@@ -112,68 +94,57 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
112
94
} else {
113
95
EdgeUtils .setStatusBarLight(this , true )
114
96
}
115
- initViewAgain()
97
+ lifecycleScope.launch {
98
+ initViewAgain()
99
+ }
116
100
}
117
101
/* 调整导航栏前景色 手势导航模式下无效 导航条会自动变色 形成反差色*/
118
102
binding.mTvNavigationDark.setOnClickListener {
119
- /* if (EdgeUtils.isNavigationBarLight(this)) {
120
- EdgeUtils.setNavigationBarLight(this, false)
121
- } else {
122
- EdgeUtils.setNavigationBarLight(this, true)
123
- }*/
124
103
// 在全面屏模式系,存在2种变体 存在导航条 和 不存在导航条
125
104
if (edgeIsNavigationBarLight()) {
126
105
edgeSetNavigationBarLight(false )
127
106
} else {
128
107
edgeSetNavigationBarLight(true )
129
108
}
130
- initViewAgain()
109
+ lifecycleScope.launch {
110
+ initViewAgain()
111
+ }
131
112
}
132
113
/* 显示隐藏状态栏*/
133
114
binding.mBtnStatus.setOnClickListener {
134
- /* if (EdgeUtils.hasStatusBar(this@ParamsActivity)) {
135
- EdgeUtils.hideStatusBar(
136
- this@ParamsActivity,
137
- WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
138
- )
139
- } else {
140
- EdgeUtils.showStatusBar(this@ParamsActivity)
141
- }*/
142
- if (edgeHasStatusBar()) {
143
- edgeHideStatusBar()
144
- } else {
145
- edgeShowStatusBar()
115
+ lifecycleScope.launch {
116
+ if (edgeHasStatusBar()) {
117
+ edgeHideStatusBar()
118
+ } else {
119
+ edgeShowStatusBar()
120
+ }
121
+ initViewAgain()
146
122
}
147
- initViewAgain()
123
+
148
124
}
149
125
/* 显示隐藏导航栏*/
150
126
binding.mBtnNav.setOnClickListener {
151
- /* if (EdgeUtils.hasNavigationBar(this)) {
152
- EdgeUtils.hideNavigationBar(this@ParamsActivity)
153
- } else {
154
- EdgeUtils.showNavigationBar(this@ParamsActivity)
155
- }*/
156
- if (edgeHasNavigationBar()) {
157
- edgeHideNavigationBar()
158
- } else {
159
- edgeShowNavigationBar()
127
+ lifecycleScope.launch {
128
+ if (edgeHasNavigationBar()) {
129
+ edgeHideNavigationBar()
130
+ } else {
131
+ edgeShowNavigationBar()
132
+ }
133
+ initViewAgain()
160
134
}
161
- initViewAgain()
162
135
}
163
136
164
137
/* 显示隐藏系统栏*/
165
138
binding.mBtnSystemBar.setOnClickListener {
166
- /* if (EdgeUtils.hasStatusBar(this) && EdgeUtils.hasNavigationBar(this)) {
167
- EdgeUtils.hideSystemBar(this@ParamsActivity)
168
- } else {
169
- EdgeUtils.showSystemBar(this@ParamsActivity)
170
- }*/
171
- if (edgeHasStatusBar() && edgeHasNavigationBar()) {
172
- edgeHideSystemBar()
173
- } else {
174
- edgeShowSystemBar()
139
+
140
+ lifecycleScope.launch {
141
+ if (edgeHasStatusBar() && edgeHasNavigationBar()) {
142
+ edgeHideSystemBar()
143
+ } else {
144
+ edgeShowSystemBar()
145
+ }
146
+ initViewAgain()
175
147
}
176
- initViewAgain()
177
148
}
178
149
179
150
}
0 commit comments