1

我需要 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();    

此致

4

1 回答 1

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();

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

于 2010-11-15T10:46:30.257 回答