我是开发Android应用程序的新手,我正在制作一个基本的Web浏览器.到目前为止,我已经或多或少地按照我想要的方式工作了.我遇到的问题是一些网站加载全屏并覆盖我的按钮和editText的URL.例如reddit.com或notcot.org等网站显示在webview的给定区域,但facebook.com或yahoo.com等网站将重新加载并占据整个屏幕,覆盖我的按钮和editText栏,让我使用模拟器返回按钮而不是我制作的按钮.我真的不确定问题是什么,因为它似乎只发生在一些网站而不是其他网站.这是XML:
而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); } } }
感谢任何关于我没有看到的提示或建议.