Android 中的可见性消失

Posted

技术标签:

【中文标题】Android 中的可见性消失【英文标题】:Visibility to Gone in Android 【发布时间】:2020-10-27 13:56:33 【问题描述】:

我正在研究动态视图。我很喜欢生成图像视图的 id ,使用循环进行约束并在代码中设置所有内容。我想要一个暂停和开始按钮。如果我点击暂停,除了播放按钮之外,一切都应该是不可见的。有可能吗?

ImageView[][] imageView = new ImageView[levelHeight][levelWidth];

    //setting each imageview's id and conatraints
    for (int i = 0; i < 5; ++i) 
        for (int j = 0; j < 5; ++j) 


            imageView[i][j] = new ImageView(this);
            imageView[i][j].setId(View.generateViewId());

            imageView[i][j].setLayoutParams(new ConstraintLayout.LayoutParams(viewWidth, viewWidth));

            mainLayout.addView(imageView[i][j]);

            ConstraintSet constraintSet = new ConstraintSet();
            constraintSet.clone(mainLayout);
            if ((i == 0) && (j == 0)) 
                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.LEFT, mainLayout.getId(), ConstraintSet.LEFT, 0);
                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.TOP, mainLayout.getId(), ConstraintSet.TOP, 0);
            
            if (j != 0) 

                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.LEFT, imageView[i][j - 1].getId(), ConstraintSet.RIGHT, 0);
                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.TOP, imageView[i][j - 1].getId(), ConstraintSet.TOP, 0);
            
            if (i != 0) 
                //   newTopMargin=newTopMargin+viewHeight;
                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.LEFT, imageView[i - 1][j].getId(), ConstraintSet.LEFT, 0);
                constraintSet.connect(imageView[i][j].getId(), ConstraintSet.TOP, imageView[i - 1][j].getId(), ConstraintSet.BOTTOM, 0);
            
            constraintSet.applyTo(mainLayout);

【问题讨论】:

在此处发布您的代码 请不要仅仅因为您使用 android-studio 标签而标记问题:Android Studio 标签应该在您对 IDE 本身有疑问时使用,而不是您在其中编写(或想要编写)的任何代码。请参阅 when is it appropriate to remove an IDE tag、How do I avoid misusing tags? 和 the tagging guide。请改用 [android] 或其他相关标签。 对不起。我不会那样做的 【参考方案1】:

遍历您的二维图像数组,每次将每个项目设置为消失:

for (int i = 0; i < 5; ++i) 
 for (int j = 0; j < 5; ++j) 
   imageView[i][j].setVisibility(VIEW.GONE)
 

【讨论】:

谢谢。那行得通。我只需要在创建 Activity 之前声明 imageView,以便在单击按钮时可以访问它。【参考方案2】:

为您希望使其可见性消失的每个项目定义此项:

item.visibility=View.GONE

【讨论】:

这就是问题所在。我正在使用动态视图。通过 View 生成 id 所以不知道 ids 。 所以你的问题是找到 id 而不是设置可见性到 GONE @ManpreetNarang

以上是关于Android 中的可见性消失的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 中的不可见性、消失、可见性 ROW 和列

android Xml 布局,可见性消失了调整我的父布局

当我将 ImageView 的可见性设置为线性布局消失时,它的一个孩子仍然存在,另一个在 android 中消失了

ListView 中的可见性消失

如何保存可见性android

使用动画将视图的可见性从消失变为可见