Что, если вы попытаетесь скрыть уже скрытый компонент? - PullRequest
0 голосов
/ 21 июня 2020

Я думаю, что это очень базовая c вещь, но я все еще не уверен, что происходит.

Например, у меня есть 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 ]

1 голос
/ 21 июня 2020

Вам не нужно заботиться о том, виден он или нет, метод setVisibility делает это сам, поэтому, если он уже скрыт, ничего не происходит. Если вам интересно, как View справляется с этим, вы можете проверить исходный код :) setVibility invoke setFlags, и вот где происходит magi c.

Исходный код: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/View.java

Итак, вы должны использовать:

public void onStartTrackingTouch(SeekBar seekBar) {
    textView.setVisibility(View.GONE);
}
1 голос
/ 21 июня 2020

Если бы они оба сделали одно и то же, я бы go для того, у кого нет оператора if, потому что лично мне нравится иметь более чистый код. Но судя по тому, насколько мала функция go, ту, которую вы считаете, легче читать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...