我认为这是非常基本的事情,但是我仍然不确定会发生什么。
例如,我有一个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);
}
我知道以上代码的结果相同,但是我想做一个很好的练习
答案 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);
}