我有一个带有visibility = gone和height = wrap_content的ListView,我需要它的高度来制作展开动画.
我已经尝试过了:
view.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
int height = view.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)
和
v.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
int height = view.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)
和
v.measure(View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.MATCH_PARENT, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.WRAP_CONTENT, View.MeasureSpec.UNSPECIFIED));
int height = view.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)
但它让我的价值降低了.
我试图在onResume之后这样做.
Bus*_*ata 15
我找到的唯一方法是从可见标题视图的宽度设置我的视图的宽度,然后下面的代码返回正确的值.
int widthSpec = MeasureSpec.makeMeasureSpec(headerView.getWidth(), MeasureSpec.EXACTLY);
int heightSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
v.measure(widthSpec, heightSpec);
int height = v.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)
view.post(new Runnable() {
@Override
public void run() {
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int height = view.getMeasuredHeight();
}
});
Run Code Online (Sandbox Code Playgroud)
这对我有用。方法“post”确保视图已经添加到屏幕上。
| 归档时间: |
|
| 查看次数: |
6684 次 |
| 最近记录: |