6

私のレイアウトでは、要素が適切に配置されないことがあります。私は多くの解決策を試しましたが、ユニークな作業は、縦向きから横向きに回転し、横向きから縦向きに戻ることです。次に、レイアウトが自動的に再描画され、完全に収まります。コンテンツがリロードされず、再描画のみが行われるように、向き|キーボードを設定しました。横向き縦向きのようにプログラムでコンテンツを再描画する方法は? ありがとうございました。

編集:私は以下を試しましたが、効果がありません

getWindow().getDecorView().findViewById(android.R.id.content).invalidate();
getWindow().getDecorView().findViewById(android.R.id.content).requestLayout();

アクティビティは onCreate でメイン レイアウトを設定しましたsetContentView(R.layout.main);

レイアウト「メイン」には、TabHost と Admob が含まれています。レイアウト「ビュー」には、タブ 1 に表示される Web ビュー (「id:myWebview」) が含まれています。

また、それらを無効にしようとしました!webview、レイアウトメイン、レイアウトビュー、およびクラッシュ

4

4 に答える 4

7

ルートビューを試しましinvalidate()たか?

findViewById(android.R.id.content).invalidate();

これにより、レイアウト全体が再描画されます。

于 2012-07-05T15:58:44.507 に答える
2

画面の向きが変わると、Androidは現在のアクティビティを再作成します。

measure(int、int)またはrequestLayout()を呼び出してみてください。そうしないと、プログラムでビューを中継する機会がありません。

于 2012-07-05T16:01:44.270 に答える
1

詳細については、 requestLayout()のみを呼び出し、 Viewクラスの説明を参照してください。

于 2012-07-05T16:04:59.703 に答える
-1

これが安全でない、または悪い習慣である場合は、私を修正してください。私もこれらすべての方法を試しましたが、必死になって onCreate をもう一度呼び出してみることにしましたが、うまくいきました。したがって、今のonCreate(null)ところ、データを更新するときにビューを更新するために使用します。繰り返しますが、これが安全でないか、悪い慣行であるか、可能であれば有効な代替手段であるかどうかをお知らせください。

于 2015-04-10T14:31:08.033 に答える