По умолчанию ваш макет виден. И когда вы вызываете метод, он проверяет, является ли представление видимым. Второе условие if удовлетворяет этому. Итак, в первый раз вызывается LinearLayout.GONE.
Но когда вы нажимаете второй раз (теперь ваше представление не видно), первое условие удовлетворяется, и вызывается LinearLayout.VISIBLE. Теперь ваш взгляд виден. Таким образом, второе условие также удовлетворяется, и LinearLayout.GONE вызывается снова.
Просто поставь и еще и все заработает.
public void toggleInfo(View view) {
LinearLayout infoText = findViewById(R.id.text_box);
if (infoText.getVisibility() == LinearLayout.GONE) {
infoText.setVisibility(LinearLayout.VISIBLE);
}else if (infoText.getVisibility() == LinearLayout.VISIBLE) {
infoText.setVisibility(LinearLayout.GONE);
}
}