我需要一个简单的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();
最好的问候
答案 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();
最好的问候和快乐的编码: - )