Как я могу перерисовать галерею Android при изменении вида?

#android #gallery #onconfigurationchanged

#Android #Галерея #onconfigurationchanged

Вопрос:

Я изменяю Activity для реализации, onConfigurationChanged(...) и он содержит расширенный Gallery , члены которого задаются вручную, используя их LayoutParams из Gallery адаптера.

К сожалению Gallery , изначально отображается неправильно: расширенный View заполняет весь экран. Однако, как только выбран другой элемент View , отображается правильный размер.

В качестве эксперимента я попытался заморозить размеры выбранного View из Gallery#onConfigurationChanged(...) метода, и произошло то же самое поведение, предполагая View , что он был обновлен, но изменения Gallery не отображаются.

Я также пытался вызывать оба invalidate() и postInvalidate() Gallery из Activity#onConfigurationChanged(...) . Ничего.

Как я могу заставить Gallery перерисовать с правильными размерами для View ?

Комментарии:

1. Вы пробовали notifyDataSetChanged() на адаптере?

2. обновите адаптер галереи.

3. @SnowyTracks к сожалению, это не сработало.

4. Я не уверен, как вы добавляете свои представления в свою галерею, однако попробуйте вызвать invalidate() для представлений внутри адаптера, а не только для самой галереи.

5. Уже пробовал это (изнутри метода просмотра, который сбрасывает все); все равно никакой радости. postInvalidate() тоже ничего не сделал.

Ответ №1:

Вызов notifyDataSetChanged() вашего адаптера галереи должен выполнить эту работу.

Если этого не произойдет, возможно, где-то что-то не так с вашими кодами.