2

我有一个 XML,在那个 XML 中我有一个 RelativeLayout 说 R1,现在在 R1 里面我有一个 ViewFlipper,在 ViewFlipper 里面我有 7 个相对布局,如果我在我的 UI 上加载所有七个,一切正常,但条件我只想要 3要在 UI 上显示的相对布局(在 ViewFlipper 内)。谁能帮我把剩下的 4 个相对布局变成 View.GONE。我尝试设置它们

            if(X==Y){
            findViewById(R.id.relativeA).setVisibility(View.GONE);
        findViewById(R.id.relativeB).setVisibility(View.GONE);
        findViewById(R.id.relativeC).setVisibility(View.GONE);
        findViewById(R.id.relativeD).setVisibility(View.GONE);
            }

但这不起作用。我在要求条件下将它设置在 onCreate 中,但是只有在启动活动并且当我用手指到处乱扔时,这个视图才会消失,所有布局都会出现在 UI 上。

现在我剩下的唯一解决方案是创建另一个具有所需相对布局的 XML,但问题是我的 XML 非常重,我不想使用最后一个选项。请帮助

4

2 回答 2

2

您可以使用viewFlipper.removeViewAt(index)提供要删除的视图的索引(位置)。

或者

您可以使用viewFlipper.removeView(viewFlipper.findViewById(ID_OF_RELATIVE_LAYOUT_TO_REMOVE))

还有一个辅助方法叫做

removeViews(int start, int count)一次删除多个视图。

有关更多信息,您可以查看ViewGroup - Android 文档

于 2012-07-17T10:17:59.503 回答
1

不要隐藏视图,而是尝试删除不需要的视图,例如

viewfliper.removeViewAt(relativeA POSITION);
于 2012-07-17T09:35:48.217 回答