Android Studio应用运行时屏幕中央出现异常矩形框求助
解决移除ActionBar后出现System UI无响应且无按钮的问题
问题根源:你在调用
super.onCreate(savedInstanceState)之前就执行了ActionBar隐藏操作,这会打乱AppCompatActivity的初始化流程。父类的onCreate方法负责完成包括ActionBar在内的系统UI基础初始化,提前调用hide()会干扰System UI的正常启动逻辑,进而引发无响应提示且按钮缺失的异常。修正后的代码:
package com.example.mywebapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebView; import androidx.appcompat.app.ActionBar; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { // 优先执行父类初始化逻辑 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 待系统UI初始化完成后,再隐藏ActionBar ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); } WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/index.html"); } }
- 更稳妥的替代方案:如果你的需求是彻底移除ActionBar,直接在
AndroidManifest.xml中给目标Activity设置无ActionBar主题即可,无需在代码中手动处理,能避免因代码顺序问题引发的异常:
<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
内容的提问来源于stack exchange,提问作者pinu
相关产品推荐
相关产品推荐

