即使layout_height设置为wrap_content,自定义视图对象也会占用整个屏幕高度

时间:2010-08-06 10:13:46

标签: android view android-widget

我创建了一个扩展android.view.View的对象,覆盖draw()并将其显示在屏幕上。为了让你进入图片,它是一个数字显示,代表一个游戏分数。它正确地水平显示,然而,它占据了屏幕的整个高度 - 将所有其他元素推离屏幕。

我已将layout_height="wrap_content"放入xml中,但它没有效果。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:5)

我已经明白了......

我应该覆盖onDraw(),但这不是导致问题的原因。

最重要的是,我需要像这样覆盖onMeasure():

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(DIGIT_WIDTH * getNumberOfDigits(), DIGIT_HEIGHT);
}

DIGIT_WIDTHDIGIT_HEIGHT是设置为我使用的每个数字图像尺寸的常量。 getNumberOfDigits()只是xml属性中自定义属性集的getter。

希望能帮助其他人遇到这个问题。