[BugFix]修复夺宝精灵8.0透明背景崩溃bug
This commit is contained in:
@@ -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
|
||||
|
@@ -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()
|
||||
}
|
@@ -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狀態欄會被頂上去,不知道什麼鬼
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user