注意:
有什么建议吗?
答案 0 :(得分:0)
您必须使用getViewTreeObserver()。您可以做的一件事是将视图集中的可见性设置为可见或不可见(仅创建高度),然后将其更改为代码中的不可见/消失。示例:
private int mHeight = 0;
private View mView;
class...
// onCreate or onResume or onStart ...
mView = findViewByID(R.id.someID);
mView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener(){
@Override
public void onGlobalLayout() {
// gets called after layout has been done but before display
// so we can get the height then hide the view
mHeight = mView.getHeight();
mView.getViewTreeObserver().removeGlobalOnLayoutListener( this );
mView.setVisibility( View.GONE );
}
});
答案 1 :(得分:0)
实际上还有另一种方式,我过去习惯使用它来制作一些自定义的东西,但它会定义为你工作
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
void run() {
if(view.getHeight() == 0) {
handler.postDelayed(this, 50);
} else {
// you're all set
}
}
}, 50);
希望这会有所帮助