何も特別なことはありません。マニフェストのアプリケーションクラス名としてMyAppを登録します。
public class MyApp extends Application
{
public WebView _WebView = null;
@Override
public void onCreate()
{
_WebView = new WebView(getApplicationContext());
// Settings etc.
_WebView.loadUrl("url");
super.onCreate();
}
}
main.xmlからビューを削除します。
public class MyActivity extends Activity
{
WebView _WebView;
RelativeLayout _Layout; // Should be declared in main.xml.
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
_Layout = (RelativeLayout) findViewById(R.id.rl);
ViewTreeObserver vto = _Layout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new MyLayoutListener()); // .layout(0,0,width,height);
Display display = getWindowManager().getDefaultDisplay();
MyApp app = (MyApp) this.getApplication();
_WebView = app._WebView;
_Layout.addView(_WebView, display.getWidth(), display.getHeight());
}
@Override
protected void onDestroy()
{
_Layout.removeView(_WebView);
super.onDestroy();
}
}
private class MyLayoutListener implements OnGlobalLayoutListener
{
public void onGlobalLayout()
{
Display display = getWindowManager().getDefaultDisplay();
_WebView.layout(0, 0, display.getWidth(), display.getHeight());
//_Layout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
この行はどうですか? "vto.addOnGlobalLayoutListener(new MyLayoutListener());"これをコード化する方法は? MyLayoutListenerが存在しません。 – ElSajko
@ElSajko私は3年が経過したので、今は文脈から外れています。 MyLayoutListenerコードが自動応答に追加されましたが、説明することができません。理由とその理由は何ですか?とにかく、コードは2.3のため、多分何か別の方法で最近行う必要があります。 – noober
ViewTreeObserverなしで作業しました。しかし、まだ役に立つポスト。 EDIT:Mea Culpa。コードにスクロールがあり、MyLayoutListenerがあることに気付かなかった。 Nvm – ElSajko