处理视图可见性更改而不会覆盖视图 [英] Handle a view visibility change without overriding the view
本文介绍了处理视图可见性更改而不会覆盖视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在不覆盖视图的情况下处理视图可见性更改(例如,从GONE更改为VISIBLE)?
Is there a way to handle a view visibility change (say, from GONE to VISIBLE) without overriding the view?
像View.setOnVisibilityChangeListener();
一样?
推荐答案
您可以使用GlobalLayoutListener
确定视图可见性是否发生任何变化.
You can use a GlobalLayoutListener
to determine if there are any changes in the views visibility.
myView.setTag(myView.getVisibility());
myView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int newVis = myView.getVisibility();
if((int)myView.getTag() != newVis)
{
myView.setTag(myView.getVisibility());
//visibility has changed
}
}
});
这篇关于处理视图可见性更改而不会覆盖视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文