[dev_arch_opt_3.0] 修正云通话窗口被遮挡问题

This commit is contained in:
renwj
2023-03-08 19:52:11 +08:00
parent 5d05f0fded
commit 01d9042887
3 changed files with 33 additions and 28 deletions

View File

@@ -13,7 +13,6 @@
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:layout_height="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_hawk_eye_default_head_img"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -25,7 +24,6 @@
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_launcher_calling_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -73,10 +73,10 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
}
override fun initViews() {
injectFloatView()
injectStatusBar()
window.setBackgroundDrawable(null)
initConnectInfoRV()
FloatingViewHandler.init(module_main_id_floating_view)
CallerHmiManager.init(this)
//申请悬浮窗权限
@@ -90,23 +90,42 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
}
private fun injectStatusBar() {
val decorView = this.window.decorView as FrameLayout
val decorView = this.window.decorView as? FrameLayout ?: return
val contentView =
(decorView.findViewById<View>(android.R.id.content) as ViewGroup).getChildAt(0)
(decorView.findViewById<View>(android.R.id.content) as? ViewGroup)?.getChildAt(0) ?: return
contentView.fitsSystemWindows = false
decorView.clipToPadding = false
var statusBarView = decorView.findViewWithTag<View>("status_bar")
if (statusBarView == null) {
statusBarView = statusBar
statusBarView.setTag("status_bar")
statusBarView.tag = "status_bar"
val params = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
params.topMargin = 0
params.gravity = Gravity.TOP
decorView.addView(statusBarView, params)
}
}
private fun injectFloatView() {
val decorView = this.window.decorView as? FrameLayout ?: return
val contentView =
(decorView.findViewById<View>(android.R.id.content) as? ViewGroup)?.getChildAt(0) ?: return
contentView.fitsSystemWindows = false
decorView.clipToPadding = false
var floatContainer = decorView.findViewWithTag<View>("float_container")
if (floatContainer == null) {
floatContainer = FrameLayout(this)
floatContainer.tag = "float_container"
FloatingViewHandler.init(floatContainer)
val params = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
)
decorView.addView(floatContainer, params)
}
val statusBarLP = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
statusBarLP.topMargin = 0
statusBarLP.gravity = Gravity.TOP
decorView.addView(statusBarView, statusBarLP)
}
/**

View File

@@ -6,23 +6,11 @@
android:background="@drawable/main_splash_bg"
android:orientation="vertical">
<!--网约车视图-->
<FrameLayout
android:id="@+id/module_main_id_och_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 浮层-->
<FrameLayout
android:id="@+id/module_main_id_floating_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!--网约车视图-->
<FrameLayout
android:id="@+id/module_main_id_och_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
android:layout_height="match_parent" />
<!--冷启动过渡Logo-->
<androidx.constraintlayout.widget.ConstraintLayout