0

フルスクリーンに拡張したいWebViewがあります。ユーザーはそれを操作するので、展開するときに何らかの状態を維持する必要があります。理想的なプロセスは次のとおりです。

- Remove WebView from its parent
- Put WebView at the top of the current View hierarchy with `FILL_PARENT` for width and height

後で、WebViewを元に戻す必要があります。

- Remove WebView from top of the hierarchy
- Restore the old hierarchy
- Put WebView back where it was with its previous setting for width and height

についてgetRootViewは知っていますが、使い方がわかりません。何DecorViewですか?

私が上で説明した展開と折りたたみの動作を実現するためのサンプルコードを誰かが持っているなら、私は本当に感謝しています。ありがとう!

4

1 に答える 1

2

のルートビューを取得しますDecorView

ViewGroup parentViewGroup = (ViewGroup) webView.getRootView().findViewById(android.R.id.content);
View rootview = parentViewGroup.getChildAt(0);

そのルートビューを削除します。

parentViewGroup.removeViewAt(0);

WebView親からを削除します。

View webViewParent = (View) webView.getParent();
webViewParent.removeView(webView);

ビュー階層のWebView最上位にを配置します。

parentViewGroup.addView(webView, 0, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));

参照を使用してrootview、展開を元に戻します。

唯一のことは、のレイアウトパラメータをどのように復元するのかわかりませんrootview

于 2012-10-15T05:17:49.690 に答える