ViewFlipper addView не работает - PullRequest
       4

ViewFlipper addView не работает

1 голос
/ 11 ноября 2010

Мне нужна помощь с простой реализацией ViewFlipper.Флиппер отлично работает, когда я раздуваю дочерние представления "ws.addView (childView)" в onCreate действия.

Я сталкиваюсь с проблемой, когда хочу удалить все дочерние элементы из флиппера и добавить еще одну их группу с помощью метода addView (child).Я пытаюсь вызвать методы onFinishInflate () и invalidate () на флиппере, которые, похоже, не дают желаемого эффекта обновления содержимого флиппера.Вид на плавник пустой.Я проверил, содержит ли флиппер потомков после цикла addView, и в моем случае это число> 1. Может быть, я что-то упустил.Надеюсь, кто-нибудь может мне помочь.

                ws.removeAllViews();
                ArrayList<View> childViews = getAllChildrenFromSomewhere();
                for (View childView : childViews) {
                    ws.addView(childView);
                }
                ws.onFinishTemporaryDetach();

                ws.onFinishInflate();
                ws.invalidate();    

С наилучшими пожеланиями

1 Ответ

2 голосов
/ 15 ноября 2010

Мне удалось найти ответ на мой вопрос.Я удалял всех потомков из ViewFlipper, и следующим шагом было добавление новых потомков в ViewFlipper.Удаление всех дочерних элементов и аннулирование представления приводило к появлению пустого представления, так как ни один дочерний элемент не был выбран.Добавляя только новых дочерних элементов и снова аннулируя представление, ViewFlipper оставался пустым.Используя ws.showNext () после ws.invalidate (), отображается первый дочерний элемент из новых дочерних элементов, и ViewFlipper работает должным образом.Надеюсь, это поможет.

            ws.removeAllViews();
            ArrayList<View> childViews = getAllChildrenFromSomewhere();
            for (View childView : childViews) {
                ws.addView(childView);
            }
            ws.onFinishTemporaryDetach();

            ws.onFinishInflate();
            ws.invalidate();  
            // show the first childView
            ws.showNext();

С наилучшими пожеланиями и счастливого кодирования: -)

...