fix:临时方案修复WEB弹窗因导航栏导致的显示被裁剪问题

This commit is contained in:
Max
2023-11-21 19:36:30 +08:00
parent 034185d13b
commit 46d991edb9
4 changed files with 214 additions and 176 deletions

View File

@@ -3,8 +3,8 @@ package com.yizhuan.habu.ui.webview;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.netease.nim.uikit.common.util.sys.ScreenUtil;
@@ -28,8 +28,18 @@ public class DialogWebViewActivity extends CommonWebViewActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight / 3 * 2); getWindow().getDecorView().setSystemUiVisibility(
getWindow().setGravity(Gravity.BOTTOM); View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
View topView = findViewById(R.id.v_top);
topView.setOnClickListener(v -> finish());
ViewGroup.LayoutParams params = topView.getLayoutParams();
params.height = ScreenUtil.screenHeight / 3;
topView.setLayoutParams(params);
showTitleBar = getIntent().getBooleanExtra("showTitleBar", true); showTitleBar = getIntent().getBooleanExtra("showTitleBar", true);
if (!showTitleBar) { if (!showTitleBar) {
layoutTitleBar.setVisibility(View.GONE); layoutTitleBar.setVisibility(View.GONE);

View File

@@ -4,12 +4,10 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.view.Gravity import android.view.View
import android.view.WindowManager import android.view.WindowManager
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.chuhai.utils.UiUtils import com.chuhai.utils.UiUtils
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.yizhuan.habu.R import com.yizhuan.habu.R
import com.yizhuan.habu.ui.webview.CommonWebViewActivity import com.yizhuan.habu.ui.webview.CommonWebViewActivity
import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.home.bean.BannerInfo
@@ -42,11 +40,19 @@ class RoomBannerWebDialogActivity : CommonWebViewActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
window.setLayout( window.setLayout(
WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT,
ScreenUtil.screenHeight - UiUtils.dip2px(168f) WindowManager.LayoutParams.MATCH_PARENT
) )
window.setGravity(Gravity.BOTTOM) val topView = findViewById<View>(R.id.v_top)
topView.setOnClickListener { v: View? -> finish() }
val params = topView.layoutParams
params.height = UiUtils.dip2px(168f)
topView.layoutParams = params
webView.setBackgroundColor(Color.parseColor("#C9CBD1")) webView.setBackgroundColor(Color.parseColor("#C9CBD1"))
recyclerView = findViewById(R.id.recyclerView) recyclerView = findViewById(R.id.recyclerView)
val position = 0.coerceAtLeast(intent.getIntExtra("position", 0)) val position = 0.coerceAtLeast(intent.getIntExtra("position", 0))

View File

@@ -1,95 +1,107 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:cardBackgroundColor="@color/white" android:orientation="vertical">
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout <View
android:id="@+id/v_top"
android:layout_width="match_parent"
android:layout_height="0dp" />
<androidx.cardview.widget.CardView
android:id="@+id/layout_root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> app:cardBackgroundColor="@color/white"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<FrameLayout <LinearLayout
android:id="@+id/layout_title_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp"> android:layout_height="match_parent"
android:orientation="vertical">
<androidx.cardview.widget.CardView <FrameLayout
android:layout_width="wrap_content" android:id="@+id/layout_title_bar"
android:layout_height="wrap_content" /> android:layout_width="match_parent"
android:layout_height="48dp">
<LinearLayout <androidx.cardview.widget.CardView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content" />
android:gravity="center_vertical"
android:orientation="horizontal"> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_back"
android:layout_width="45dp"
android:layout_height="45dp"
android:scaleType="center"
android:src="@drawable/arrow_left" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical|start"
android:scaleType="center"
android:src="@drawable/ic_close_black" />
</LinearLayout>
<TextView
android:id="@+id/tv_title"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/text_title_color"
android:textSize="18sp" />
<ImageView <ImageView
android:id="@+id/iv_back" android:id="@+id/img_share"
android:layout_width="45dp" android:layout_width="22dp"
android:layout_height="45dp" android:layout_height="22dp"
android:scaleType="center" android:layout_gravity="center_vertical|end"
android:src="@drawable/arrow_left" /> android:layout_marginEnd="15dp"
android:src="@drawable/ic_share_white"
android:visibility="gone" />
<ImageView <TextView
android:id="@+id/iv_close" android:id="@+id/tv_title_right"
android:layout_width="45dp" android:layout_width="wrap_content"
android:layout_height="45dp" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start" android:layout_gravity="center_vertical|end"
android:scaleType="center" android:layout_marginEnd="15dp"
android:src="@drawable/ic_close_black" /> android:textColor="@color/text_normal_c6c6e9"
android:textSize="14sp"
android:visibility="gone"
tools:text="@string/layout_activity_dialog_web_view_01" />
</FrameLayout>
</LinearLayout> <ProgressBar
android:id="@+id/progress_bar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progress_drawable" />
<TextView <WebView
android:id="@+id/tv_title" android:id="@+id/webview"
android:layout_width="200dp" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/text_title_color"
android:textSize="18sp" />
<ImageView </WebView>
android:id="@+id/img_share"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_share_white"
android:visibility="gone" />
<TextView </LinearLayout>
android:id="@+id/tv_title_right" </androidx.cardview.widget.CardView>
android:layout_width="wrap_content" </LinearLayout>
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="14sp"
android:visibility="gone"
tools:text="@string/layout_activity_dialog_web_view_01" />
</FrameLayout>
<ProgressBar
android:id="@+id/progress_bar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progress_drawable" />
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@@ -1,108 +1,118 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:cardBackgroundColor="@color/color_262629" android:orientation="vertical">
app:cardCornerRadius="8dp"
app:cardElevation="0dp">
<LinearLayout <View
android:id="@+id/v_top"
android:layout_width="match_parent"
android:layout_height="0dp" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> app:cardBackgroundColor="@color/color_262629"
app:cardCornerRadius="8dp"
app:cardElevation="0dp">
<FrameLayout <LinearLayout
android:id="@+id/layout_title_bar"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_back"
android:layout_width="45dp"
android:layout_height="45dp"
android:scaleType="center"
android:src="@drawable/arrow_left" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical|start"
android:scaleType="center"
android:src="@drawable/ic_close_black" />
</LinearLayout>
<TextView
android:id="@+id/tv_title"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/text_title_color"
android:textSize="18sp" />
<ImageView
android:id="@+id/img_share"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_share_white"
android:visibility="gone" />
<TextView
android:id="@+id/tv_title_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="14sp"
android:visibility="gone"
tools:text="@string/layout_activity_dialog_web_view_01" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
android:paddingTop="@dimen/dp_2"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:cardCornerRadius="8dp" android:orientation="vertical">
app:cardElevation="0dp">
<WebView <FrameLayout
android:id="@+id/webview" android:id="@+id/layout_title_bar"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_back"
android:layout_width="45dp"
android:layout_height="45dp"
android:scaleType="center"
android:src="@drawable/arrow_left" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical|start"
android:scaleType="center"
android:src="@drawable/ic_close_black" />
</LinearLayout>
<TextView
android:id="@+id/tv_title"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/text_title_color"
android:textSize="18sp" />
<ImageView
android:id="@+id/img_share"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_share_white"
android:visibility="gone" />
<TextView
android:id="@+id/tv_title_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="14sp"
android:visibility="gone"
tools:text="@string/layout_activity_dialog_web_view_01" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="@dimen/dp_60"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
android:paddingTop="@dimen/dp_2"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<ProgressBar
android:id="@+id/progress_bar" <androidx.cardview.widget.CardView
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="4dp" android:layout_height="match_parent"
android:max="100" app:cardCornerRadius="8dp"
android:progress="0" app:cardElevation="0dp">
android:progressDrawable="@drawable/progress_drawable_room_banner" />
</androidx.cardview.widget.CardView>
</LinearLayout> <WebView
</androidx.cardview.widget.CardView> android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/progress_bar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="4dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progress_drawable_room_banner" />
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>