我创建了一个对象,该对象扩展了android.view.View,覆盖了draw(),并将其显示在屏幕上。为了让您印象深刻,它是代表游戏得分的数字显示。它可以正确地水平显示,但是它占用了屏幕的整个高度-将所有其他元素推离屏幕。

我已经将layout_height="wrap_content"放在xml中,但是没有任何效果。

有人知道我在做什么错吗?

最佳答案

我知道了...

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

最主要的是,我需要像这样重写onMeasure():

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(DIGIT_WIDTH * getNumberOfDigits(), DIGIT_HEIGHT);
}
DIGIT_WIDTHDIGIT_HEIGHT是设置为我使用的每个数字图像的尺寸的常量。 getNumberOfDigits()只是从xml属性设置的自定义属性的 getter 。

希望对其他人有所帮助。

关于android - 即使layout_height设置为wrap_content,自定义 View 对象也会占用屏幕的全部高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3422806/

10-11 22:26
查看更多