我需要有关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/