【问题标题】:setVisibility to View using IntegersetVisibility 使用 Integer 查看
【发布时间】:2018-12-18 07:14:09
【问题描述】:

我正在尝试一次将 Android 中的可见性设置为多个视图,并且我想将 Integer 发送到这些视图,而不是复制和粘贴我的代码。

        if (gameIsActive == false) {

        startButton.setVisibility(startButton.VISIBLE);
        greetingTextView.setVisibility(greetingTextView.VISIBLE);

        gridLayout.setVisibility(View.INVISIBLE);
        timerTextView.setVisibility(View.INVISIBLE);
        scoreTextView.setVisibility(View.INVISIBLE);
        checkerTextView.setVisibility(View.INVISIBLE);

    } else {

        startButton.setVisibility(startButton.INVISIBLE);
        greetingTextView.setVisibility(greetingTextView.INVISIBLE);

        gridLayout.setVisibility(View.VISIBLE);
        timerTextView.setVisibility(View.VISIBLE);
        scoreTextView.setVisibility(View.VISIBLE);
        checkerTextView.setVisibility(View.VISIBLE);

}

我知道INVISIBLE = 4VISIBLE = 0,但是创建int 并没有帮助。

int isVisible = 0;
startButton.setVisibility(startButton.isVisible);

如何将可见切换为不可见?

【问题讨论】:

  • View.VISIBLE, View.INVISIBLE 已经是整数。您可以直接使用它们。
  • 也总是使用 View.GONE ,因为当一个对象不可见时,它仍然使用布局中的空间,而 View.GONE 确实从视图中消失了该对象

标签: java android visibility


【解决方案1】:

我有类似的东西:

void setViewsVisibility(int visibility){
    view.setVisibility(visibility);
    //oher views
}

然后像这样使用它:

setViewsVisibility(View.GONE);

希望对您有所帮助!

【讨论】:

  • 我想优化代码而不是复制所有这些视图,但现在我发现它不是那样工作的。因此,我将保留此代码的原样。感谢您的回答!
  • Idk,如何进一步优化它,因为实际上您必须为视图设置可见性。您可以尝试使用 DataBinding。有了它,您可以将视图可见性附加到某个布尔变量,当布尔变量更改时它们会更改它,它看起来会更好,但我认为您不必仅为此目的使用 DataBinding。但无论如何,你可以看看这个link 并考虑一下。
【解决方案2】:

试试这样的

public void changeVisibility(int visibility)
{
    startButton.setVisibility(visibility);
    // you can add here as many as views you want
}

changeVisibility(View.VISIBLE);

【讨论】:

    【解决方案3】:

    你试过了吗:

    startButton.setVisibility(isVisible);

    【讨论】:

      【解决方案4】:

      你也可以这样做

      Button.setVisibility(isVisible == 0 ? View.Visible : View.Invisible);
      

      其中 View.Visible = 0,View.Invisible = 4 & View.Gone = 8。

      你也可以只传递整数值。 如果您遇到某种错误,请分享日志。

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 2014-05-29
        • 2013-04-17
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多