ViewFlipper addView无法正常工作

时间:2010-11-11 16:19:25

标签: android viewflipper updating

我需要一个简单的ViewFlipper实现方面的帮助。当我在活动的onCreate中夸大子视图“ws.addView(childView)”时,鳍状肢的工作非常完美。

当我想从鳍状肢中删除所有孩子并通过addView(子)方法添加另一堆子时,我遇到了问题。我试图在鳍状肢上调用onFinishInflate()和invalidate()方法,这些方法似乎没有产生刷新鳍状肢内容所需的效果。鳍状肢的视图是空白的。我在addView循环后检查了鳍状肢是否包含子节点,在我的情况下,数字是>也许我错过了什么。希望有人可以帮助我。

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

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

最好的问候

1 个答案:

答案 0 :(得分:2)

我能够找到问题的答案。我正在从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();

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