我需要简单地实现ViewFlipper的帮助。当我在活动中夸大儿童视图“ ws.addview(Childview)”时,脚钳的工作非常完美。

当我想将所有孩子从脚钳中删除并通过AddView(Child)方法添加另一串孩子时,我会遇到问题。我试图称呼flipper上的finishinflate()和无效()方法,这些方法似乎不会产生刷新脚钳的所需效果。脚鳍的景色是空白的。我检查了脚钳是否在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();

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top