我创建了一个对象,该对象扩展了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_WIDTH
和DIGIT_HEIGHT
是设置为我使用的每个数字图像的尺寸的常量。 getNumberOfDigits()
只是从xml属性设置的自定义属性的 getter 。希望对其他人有所帮助。
关于android - 即使layout_height设置为wrap_content,自定义 View 对象也会占用屏幕的全部高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3422806/