如果您尝试隐藏已经隐藏的组件怎么办?

时间:2020-06-21 00:03:47

标签: java android android-studio

我认为这是非常基本的事情,但是我仍然不确定会发生什么。

例如,我有一个SeekBar,当我开始更改其值时,我希望隐藏一个TextView,但是如果它已经被隐藏并试图将其隐藏,该怎么办?它会被执行吗?

例如,这样做更明智吗?:

public void onStartTrackingTouch(SeekBar seekBar) {
            if (textView.getVisibility() == View.VISIBLE){
                textView.setVisibility(View.GONE);
            }
        }

还是这样做更好?

public void onStartTrackingTouch(SeekBar seekBar) {
            textView.setVisibility(View.GONE);
        }

我知道以上代码的结果相同,但是我想做一个很好的练习

2 个答案:

答案 0 :(得分:1)

如果它们都做同样的事情,那么我会使用没有if语句的代码,因为我个人更喜欢具有简洁外观的代码。但是对于您认为更易于阅读的功能而言,它从功能的小到大。

答案 1 :(得分:1)

您无需担心是否可见,setVisibility方法本身会执行此操作,因此,如果它已被隐藏,则什么也不会发生。如果您对View的处理方式感到好奇,可以检查源代码:) setVibility调用setFlags,这是发生魔术的地方。

源代码: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/View.java

所以您应该使用:

public void onStartTrackingTouch(SeekBar seekBar) {
    textView.setVisibility(View.GONE);
}