我有一个有条件地添加到父级的视图。 我检查它是否已经添加到父级,不幸的是,它总是返回它可见。
if (findViewById(R.id.bottom_bar).getVisibility == View.Visible)
if (findViewById(R.id.bottom_bar).isShown())
即使从未添加过视图,也会返回true
,而且不可见。
答案 0 :(得分:33)
getVisibility()
只会返回您希望视图添加到窗口时的可见性。除非您致电setVisibility()
,否则不会更改。它也不表示视图是否在屏幕上实际可见。
isShown()
类似。这是doc:
返回此视图及其所有祖先的可见性
<强>返回强>
,则为True
如果此视图及其所有祖先为VISIBLE
答案 1 :(得分:0)
我必须做类似的事情,我倾向于询问视图是否有父(myView.getParent()!= null)然后我假设视图已添加到另一个视图。通常隐藏视图我将其从父项中删除。你也可以覆盖onDraw方法,如果你没有得到绘制的调用,你肯定是不可见的。
答案 2 :(得分:-1)
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;
答案 3 :(得分:-2)
如果findViewById(R.id.bottom_bar)
返回非null,则至少有一个bottom_bar View已在View层次结构中的某处实例化。那是你的支票。