Android: WebView,如何全屏并隐藏标题

6

我希望通过隐藏顶部栏来使WebView全屏显示。

经过研究,发现以下方法可以实现:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

但是,当我添加这个时我的应用程序无法启动。我做错了什么,你如何实现这个?

崩溃信息是什么? - Marko Niciforovic
8个回答

11

尝试,

getSupportActionBar().hide();

在你的onCreate()


3
您需要在您的清单文件中应用以下样式,例如:
<activity android:name=".YourActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>

style.xml 文件中,添加以下样式:
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
 </style>

2
只需按照以下步骤操作:
  1. Open your java file.

  2. you will find onCreate method (below where it is written @override) It looks like this

    public class MainActivity extends AppCompactActivity {     //#1
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);                //#3
        setContentView(R.layout.activity_main);
    
在setContentView之下,添加以下代码:// #3
       this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  1. 这是该行的最后一步 //#1,你可以看到AppCompactActivity,将其更改为Activity。它会显示一个错误,因为Activity类没有被导入。因此,在Activity之间放置光标并按alt + enter以导入类来导入Activity类。或者手动导入,只需在上面的导入中编写此行:import android.app.Activity;

确认后,您的新代码将如下所示:

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;


     public class MainActivity extends Activity {

           @Override
           protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                setContentView(R.layout.activity_main);
          }


   }

1

不需要做太多的花哨操作,只需将它复制并粘贴到你的 MainActivity.java 文件下“COPY MARKED CODE”的位置即可。

public class MainActivity extends AppCompatActivity {
private WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // START -- copy from here
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getSupportActionBar().hide();
    // END -- copy till here

    setContentView(R.layout.activity_main);

    webView = findViewById(R.id.webview);
    //webView.setWebViewClient(new webViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("https://app.noorcool.com/");
}
}

就是这样。享受编码吧。


这对我很有效。谢谢分享。希望这个脚本将始终与未来的更新兼容。 - Edang Jeorlie

1
这对我来说是一个非常简单的解决方案。
搜索您拥有ActionBar的任何位置,
对于我来说,我在res/values/themes.xml和res/values-night/themes.xml中拥有它。
在那里,将您拥有的任何DarkActionBar或LightActionbar更改为NoActionBar。
例如,在此之前:
<style name="Theme.AppName" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

之后:

<style name="Theme.AppName" parent="Theme.MaterialComponents.DayNight.NoActionBar">

就是这样!对我来说完美地工作了。

来源:https://www.codegrepper.com/code-examples/whatever/android+studio+webview+remove+title+bar


0

我相信你的活动扩展了CompatActivty,因此它应该有一个兼容主题。 如果我是对的,只需将您的活动更改为扩展Activity。


0
请将以下内容添加到您的AndroidManifest.xml文件中:
<activity android:name=".YourActivityName"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

0
 for hiding top bar..in Manifest..add this try
   <application
     android:theme="@style/Theme.AppCompat.Light.NoActionBar

 for webview full screen

 in XML
   <WebView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/webView"/>

    and in Mainactivity...do like this

   public class MainActivity extends Activity{

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接