我有一个android对话框,我想在其窗口中的特定位置定位。
我正在使用API 8
int a == -2
和int b == 153
怎么不是正面的?
之间有什么区别
getLayoutParams().height;
mToolTipLayout.getHeight();
我有以下代码
public void initViews(int orientation) {
mToolTipLayout = ((LinearLayout) findViewById(R.id.tooltip_layout));
ViewTreeObserver vto = mToolTipLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mToolTipLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
setPosition();
}
});
private void setPosition() {
int a = mToolTipLayout.getLayoutParams().height;
int b = mToolTipLayout.getHeight();
}
答案 0 :(得分:3)
布局参数指定度量和布局过程应如何工作。它们未在度量/布局过程中更新。 -2
是WRAP_CONTENT
的值。
这些措施本身可以在视图中找到,而不是它们的布局参数。 153
是您的案例中的测量像素高度,使用WRAP_CONTENT
规范
答案 1 :(得分:0)
是,-2表示WRAP_CONTENT。在这种情况下,要获取布局的高度,您不能使用getLayoutParams().height
或getHeight()
(分别为-2和0)。您应该获得内部视图的高度(例如,使用view.getLayoutParams().height
)。可能要添加填充。