Перерисовать взгляд на изменение ориентации - PullRequest
1 голос
/ 19 ноября 2011

Я использую TextView в ViewGroup и использую ViewGroup для создания галереи, подобной прокручиваемому пользовательскому интерфейсу.У TextView весь фон заполнен одним цветом.Все работает нормально, за исключением того, что когда я меняю orientation с portrait на landscape на portrait и наоборот, исходный размер TextView's сохраняется и, следовательно, рисунок выглядит дезориентированным.Но как только я прокручиваю или прокручиваю, это исправляется.Мой класс, который расширяет ViewGroup, не заботится о рисовании, и я попытался сделать следующее:

  • Обнулить 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);

1 Ответ

0 голосов
/ 19 ноября 2011

Вы можете попробовать добавить текстовое представление в mWorkspace после вызова setContentView, а не раньше.

До этого момента может быть невозможно определить ориентацию экрана и, следовательно, правильно рассчитать масштабирование.

Перемещение текстового поля add вниз к onStart или onResume также будет иметь эффект, хотя я обнаружил, что масштабирование лучше всего работает с onCreate.

...