我很興奮開發android應用程序和即時通訊製作一個基本的web瀏覽器。到目前爲止,我已經或多或少地處理了我想要的方式。我遇到的問題是一些網站加載全屏,並掩蓋了我的按鈕和editText的URL。例如像reddit.com或notcot.org這樣的網站在給定區域顯示webview,但像facebook.com或yahoo.com這樣的網站將重新加載並佔據整個屏幕,覆蓋我的按鈕和editText欄,讓我使用模擬器返回按鈕,而不是我所做的。我真的不知道是什麼問題,因爲它似乎只發生在一些網站而不是其他網站。 這裏是XML:android webview佔用整個屏幕
<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);
}
}
}
感謝您的任何即時通訊只是沒有看到任何提示或建議。
謝謝!一切正常,現在我需要! –
是的,就是這樣,在WebView中有很多不同的有用設置,你最好還是要讀取API – bgplaya