Intereting Posts

Просмотреть getVisibility () isShown () вернуть неправильную видимость

У меня есть представление, которое условно добавляется к родительскому. Я проверяю, если он уже добавлен к родительскому или нет, к сожалению, он всегда возвращает его видимый.

if (findViewById(R.id.bottom_bar).getVisibility == View.Visible) if (findViewById(R.id.bottom_bar).isShown()) 

Оба возвращают true даже когда представление никогда не было добавлено, а не видно.

Solutions Collecting From Web of "Просмотреть getVisibility () isShown () вернуть неправильную видимость"

getVisibility() просто возвращает видимость, которую вы хотите видеть при добавлении в окно. Он не изменяется, если вы не вызываете setVisibility() . Он также не указывает, действительно ли вид отображается на экране.

isShown() аналогичен. Вот документ:

Возвращает видимость этого представления и всех его предков

Возвращает
Правда, если этот взгляд и все его предки VISIBLE

Я должен был сделать что-то подобное, и я склонен задавать представление, имеет ли он родителя (myView.getParent ()! = Null), тогда я предполагаю, что представление было добавлено в другое представление. Часто, чтобы скрыть представление, я удаляю его из родителя. Вы также можете переопределить метод onDraw, и если вы не получите призывы к розыгрышу, вы, конечно, не видите.

 case R.id.title_call_button: if(llButtonCallNow.getVisibility() != View.VISIBLE){ llButtonCallNow.setVisibility(View.VISIBLE); } else{ llButtonCallNow.setVisibility(View.GONE); Toast.makeText(getBaseContext(), ("Im here baby :)"), Toast.LENGTH_SHORT).show(); } break; 

Если findViewById(R.id.bottom_bar) возвратил ненулевое значение, то по крайней мере один файл bottom_bar View уже был создан где-то в иерархии View. Это ваш чек.