android - ViewFlipper addView 不工作

标签 android viewflipper updating

我需要有关 ViewFlipper 的简单实现方面的帮助。当我在 Activity 的 onCreate 中膨胀 subview “ws.addView(childView)”时,脚蹼工作得很好。

当我想从鳍状肢中移除所有子项并通过 addView(child) 方法添加另一组时,我遇到了问题。我试图在鳍状肢上调用 onFinishInflate() 和 invalidate() 方法,它们似乎没有产生刷新鳍状肢内容的预期效果。鳍状肢的 View 是空白的。我在 addView 循环之后检查了鳍状肢是否包含子项,在我的例子中,数字大于 1。也许我遗漏了什么。希望有人能帮助我。

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

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

最好的问候

最佳答案

我能够找到问题的答案。我正在从 ViewFlipper 中删除所有子项,下一步是向 ViewFlipper 添加新的子项。删除所有子项并使 View 无效会导致空白 View ,因为未选择任何子项。通过只添加新的 child 并再次使 View 无效,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/

相关文章:

android - 所有 com.android.support 库必须使用完全相同的版本规范。找到版本 28.0.0、26.1.0

java - Android 中的消费者-生产者模式,一些提高性能的建议?

安卓 : Low memory error when trying to create slide show using ViewFlipper

mysql。我想替换列中某些值的名称

javascript - AngularJS - 变量未在 View 中更新(不使用范围)

php - 使用 php 和登录在 MYSQL 中更新

android - 在仅支持 armeabi 的 Android 项目中使用 Realm

Android - 获取图像 uri 时出现问题

Android NYTimes 滑动动画/手势

android - 如何在 android 中像 3d 动画一样翻转图像?