Активность в хосте вкладок пропадает

У меня есть хост с тремя вкладками. На первой вкладке я выполняю некоторые растровые операции на холсте (немного тяжелые). Всякий раз, когда я перехожу на вторую или третью вкладку, действие на вкладке становится пустым. У меня есть текст редактирования на вкладке 1, поэтому, когда когда-либо появляется программная клавиатура, остальные вкладки работают нормально. Я думаю, что это потому, что При всплывающей программной клавиатуре окно изменяется в размерах. Я думаю, что если мне удастся изменить размер или обновить вкладку 1, я смогу правильно видеть содержимое в остальных вкладках. Есть ли способ, которым я могу изменить размер текущее окно или обновите окно. Я попытался установить ширину и высоту, используя LayoutParams, но на самом деле он не изменяет размеры. Кроме того, вкладки начинают работать правильно, когда я меняю ориентацию, вероятно, потому что весь хост вкладок воссоздается. Есть ли кто-нибудь, кто сталкивался с подобной проблемой?

Любая помощь будет оценена.

2 ответа

Решение

Вы можете автоматически обновить содержимое вкладки на вкладке выберите с помощью FLAG_ACTIVITY_CLEAR_TOP вариант. Поэтому, когда вы создаете вкладки, просто добавьте их в спецификацию вкладок.

tabHost.addTab(tabHost.newTabSpec("tab1")
                      .setIndicator("myTabName")
                      .setContent(new Intent(this, MyTabContent.class)
                      .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

Если вы используете холст внутри действия внутри вкладки, убедитесь, что ваши размеры всегда верны при воссоздании представления. Сначала запишите значения в журнал и посмотрите, где и когда ширина и высота приобретают новые значения. Наиболее распространенные ошибки: onDraw и onMeasure

Другие вопросы по тегам