我需要有关ViewFlipper的简单实现的帮助。当我在活动的onCreate中为子视图“ ws.addView(childView)”充气时,该鳍状板可以完美工作。

当我想从脚蹼中删除所有子项并通过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();


最好的祝福

最佳答案

我能够找到问题的答案。我正在从ViewFlipper中删除所有子项,下一步是向ViewFlipper中添加新的子项。由于未选择任何子项,因此删除所有子项并使该视图无效会使该视图为空白。通过仅添加新的子代并再次使视图无效,ViewFlipper保持空白。通过在ws.invalidate()之后使用ws.showNext(),将显示新子项中的第一个子项,并且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();


最好的问候和愉快的编码:-)

关于android - ViewFlipper addView不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4156560/

10-10 04:07