0

誰かがこれで私を助けてくれることを願っています。

私の Android アプリには、webview (およびその他のビュー) を持つフラグメントがあります。webview は、HTML テーブルを含むページを表示します。このテーブルは、8 x 8 セル (チェス盤のようなもの) を備えたゲーム盤です。

問題は、テーブルをできるだけ画面いっぱいにしたいということです。しかし同時に、完全に正方形である必要があります (幅と高さは同じでなければなりません)。

どうやってやるの?HTML で幅と高さを 100% に設定しても、正方形にはなりません。また、それらを固定数に設定すると、異なる画面サイズではサイズが変更されません。また、WebView.getWidth() を使用して webview のサイズを取得し、テーブルを拡大縮小してそれを埋めようとしました。しかし、WebView のサイズはページが読み込まれるまでわかりません。また、WebView のサイズがわかるまでページを読み込めません...


その他の詳細(関連性があるかどうかはわかりません):

フラグメントのレイアウトは、Fragment.onCreateView のレイアウト ファイルから拡張されます。次に、Fragment.onActivityCreated で、Java コードによって Web ビューをフラグメントに追加します。HTML も Java コードによって動的に作成されます。

4

1 に答える 1

0

私はついにこれに対する解決策を見つけました:

  1. Web ビューのサイズを取得しようとする代わりに、フラグメントのサイズを取得して、他のビューのサイズを差し引きます。これにより、webview に使用できる残りのスペースが得られます。

  2. ただし、onResume でもすべての次元はゼロです。したがって、onResume では、0.5 秒後に実行される Handler を作成します。ここでは、表示する HTML ドキュメントを作成します。

  3. HTML ドキュメントのサイズを、フラグメントで使用可能なスペースのサイズの半分に設定しました。(なぜ半分にする必要があるのか​​ わかりません。)

これは醜い解決策ですが、携帯電話とタブレットの両方で、横向きモードと縦向きモードの両方で機能します。

于 2013-08-21T10:09:36.363 に答える