gpt4 book ai didi

android webview 占满整个屏幕

转载 作者:行者123 更新时间:2023-11-29 15:18:05 24 4
gpt4 key购买 nike

我是开发 Android 应用程序的新手,正在忙着制作一个基本的 Web 浏览器。到目前为止,我或多或少地按照我想要的方式工作。我遇到的问题是一些网站加载全屏并掩盖了我的按钮和 URL 的 editText。例如,像 reddit.com 或 notcot.org 这样的网站会显示在给定的 webview 区域,但是像 facebook.com 或 yahoo.com 这样的网站将重新加载并占据整个屏幕,覆盖我的按钮和 editText 栏,让我使用模拟器回来按钮而不是我做的那个。我真的不确定问题出在哪里,因为它似乎只发生在某些网站上,而不是其他网站上。这是 XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".ShowWeb"
>

<LinearLayout
android:id="@+id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageButton
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="@null"
android:onClick="onClick"
android:src="@drawable/leftarrow"
/>

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginLeft="10dp"
android:background="@color/white"
android:hint="@string/hint"
android:inputType="textUri"
android:isScrollContainer="true"
android:maxWidth="225dp"
android:scrollHorizontally="true"/>

<ImageButton
android:id="@+id/goButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@null"
android:layout_gravity="center"
android:onClick="onClick"
android:src="@drawable/go"
/>

<ImageButton
android:id="@+id/forwardButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="@null"
android:onClick="onClick"
android:src="@drawable/rightarrow"
/>

</LinearLayout>

<WebView
android:id="@+id/webBrowser"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/linear1"
/>

</RelativeLayout>

Java代码是

import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.ImageButton;

public class ShowWeb extends Activity implements OnClickListener
{
ImageButton forward,back,go;
WebView wv;
String urlString;
EditText et;


@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_web);
forward = (ImageButton)findViewById(R.id.forwardButton);
forward.setOnClickListener(this);
back = (ImageButton)findViewById(R.id.backButton);
back.setOnClickListener(this);
go = (ImageButton)findViewById(R.id.goButton);
go.setOnClickListener(this);
wv=(WebView)findViewById(R.id.webBrowser);
wv.setInitialScale(50);
wv.setVerticalScrollBarEnabled(true);
wv.setHorizontalScrollBarEnabled(true);
wv.loadUrl("http://www.google.com");
et=(EditText)findViewById(R.id.editText1);
et.setHorizontalScrollBarEnabled(true);
et.setOnKeyListener(new View.OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if((event.getAction()==KeyEvent.ACTION_DOWN)&&
keyCode==KeyEvent.KEYCODE_ENTER)
{
try
{
URL url = new URL(et.getText().toString());
urlString=url.toString();
wv.setInitialScale(50);
wv.loadUrl(urlString);

}
catch(MalformedURLException e)
{
urlString = et.getText().toString();
wv.setInitialScale(50);
wv.loadData(urlString, "text/html", "UTF-8");


}
return true;
}
else
return false;
}
}
);
wv.getSettings().setJavaScriptEnabled(true);

}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show_web, menu);
return true;
}


@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.forwardButton:
if(wv.canGoForward())
wv.goForward();
et.setText(wv.getUrl());
break;
case R.id.backButton:
if(wv.canGoBack())
wv.goBack();
et.setText(wv.getUrl());

break;
case R.id.goButton:
wv.setInitialScale(50);
wv.loadUrl(urlString);

}

}

}

感谢您对我只是没有看到的任何提示或建议。

最佳答案

您必须按照以下代码覆盖 WebViewClient:

private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}

然后在您的 onCreate 方法中:

wm.setWebViewClient(new HelloWebViewClient());

所有这些都允许您在 webview 中打开链接,并且您将始终看到您的按钮。

关于android webview 占满整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22120981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com