[BugFix]修复夺宝精灵8.0透明背景崩溃bug

This commit is contained in:
wushaocheng
2023-03-24 11:07:12 +08:00
parent c21ee78ed3
commit 6871f588c8
5 changed files with 41 additions and 2 deletions

View File

@@ -971,14 +971,12 @@
android:name=".treasurefairy.HomeFairyActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".ui.webview.FairyDialogWebViewActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/dialog_web_view_activity" />
<meta-data

View File

@@ -2,15 +2,18 @@ package com.yizhuan.erban.base
import android.os.Bundle
import android.view.LayoutInflater
import androidx.annotation.Nullable
import androidx.viewbinding.ViewBinding
import java.lang.reflect.ParameterizedType
abstract class BaseViewBindingActivity<T : ViewBinding> : BaseActivity(){
lateinit var binding : T
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.initBefore(savedInstanceState)
//反射没有想象中的那么耗时
val type = javaClass.genericSuperclass as ParameterizedType
val aClass = type.actualTypeArguments[0] as Class<*>
@@ -20,5 +23,10 @@ abstract class BaseViewBindingActivity<T : ViewBinding> : BaseActivity(){
init()
}
/**
* 该方法是在onCreate()方法里执行在setContentView()方法被调用之前触发可用于处理解析Activity#getIntent()中的数据时的场景
*/
protected open fun initBefore(@Nullable savedInstanceState: Bundle?) {}
abstract fun init()
}

View File

@@ -4,7 +4,10 @@ import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.pm.ActivityInfo
import android.graphics.Path
import android.os.Build
import android.os.Bundle
import android.text.style.ForegroundColorSpan
import android.view.*
import android.widget.LinearLayout
@@ -66,6 +69,14 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
)
}
override fun initBefore(savedInstanceState: Bundle?) {
super.initBefore(savedInstanceState)
//适配8.0和8.1不能同时设置屏幕固定方向和透明窗口背景的问题
if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O && Build.VERSION.SDK_INT != Build.VERSION_CODES.O_MR1) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
}
@SuppressLint("SetTextI18n")
override fun init() {
//這裏的height用MATCH_PARENT狀態欄會被頂上去,不知道什麼鬼

View File

@@ -29,6 +29,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.LayoutRes;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import com.google.gson.Gson;
@@ -158,6 +159,7 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.initBefore(savedInstanceState);
setContentView(getLayoutId());
Intent intent = getIntent();
url = intent.getStringExtra("url");
@@ -185,6 +187,13 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O
EventBus.getDefault().register(this);
}
/**
* 该方法是在onCreate()方法里执行在setContentView()方法被调用之前触发可用于处理解析Activity#getIntent()中的数据时的场景
*/
protected void initBefore(@Nullable Bundle savedInstanceState) {
}
@LayoutRes
protected int getLayoutId() {
return R.layout.activity_common_web_view;

View File

@@ -2,12 +2,16 @@ package com.yizhuan.erban.ui.webview;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.yizhuan.erban.R;
@@ -20,6 +24,15 @@ public class FairyDialogWebViewActivity extends CommonWebViewActivity {
context.startActivity(intent);
}
@Override
protected void initBefore(@Nullable Bundle savedInstanceState) {
super.initBefore(savedInstanceState);
//适配8.0和8.1不能同时设置屏幕固定方向和透明窗口背景的问题
if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O && Build.VERSION.SDK_INT != Build.VERSION_CODES.O_MR1) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);