1

私は を使用してTextViewおり、ViewGroupそれを使用してViewGroupスクロール可能な UI のようなギャラリーを作成しています。のTextView背景全体が単色で塗りつぶされています。orientationからportraitに、またはその逆に変更landscapeすると、元のサイズが維持されるため、図面が混乱しているように見えることを除いて、すべて正常に機能しています。しかし、パンまたはスクロールするとすぐに再修正されます。拡張する私のクラスは描画部分を処理せず、次のことを試しました:portraitTextView'sViewGroup

  • を無効にしていViewGroupます。
  • 表示中の現在のビューを無効にします。
  • 実装onConfigurationChanged中 (マニフェストに適切な変更を加えて)。

TextView構成が変更されたときに currentState を保存した後に を再作成するプロセスを実行したくありません。ビューを追加する私のコードスニペットは次のViewGroupとおりです:-

final int[] backgroundColors = { Color.RED, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW };
    for (int i = 0; i < 5; i++) {
        TextView textView = new TextView(getApplicationContext());
        textView.setText(Integer.toString(i + 1));
        textView.setTextSize(100);
        textView.setTextColor(Color.BLACK);
        textView.setGravity(Gravity.CENTER);
        textView.setBackgroundColor(backgroundColors[i]);
        mWorkspace.addView(textView);
    }
    //mWorkspace.setSeparator(R.drawable.seperator);
    setContentView(mWorkspace);
4

1 に答える 1

0

setContentViewの呼び出し前ではなく、呼び出し後にテキストビューをmWorkspaceに追加してみてください。

その時点までは、画面の向きを判別できないため、スケーリングを適切に計算できない場合があります。

テキストボックスの追加をonStartまたはonResumeに移動しても効果がありますが、スケーリングはonCreateから最適に機能することがわかりました。

于 2011-11-19T10:22:51.187 に答える