我一直在努力寻找解决方案,但也许我不明白“onMeasure()”方法在 Android 中的效果如何!
这是我第一次在 Android 中制作“动态”自定义视图,因此我了解到您需要覆盖“onMeasure()”方法才能根据屏幕大小调整视图大小。我希望我的视图是屏幕宽度的一半,再加上一点额外的(这个数字是任意的,只要它相对较小,在 3 到 5 之间),所以我为 onMeasure 方法编写了以下代码:
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int halfWidth = (MeasureSpec.getSize(widthMeasureSpec) / 2) - 5;
this.setMeasuredDimension((int) halfWidth, (int) halfWidth);
}
我确信这是一种糟糕的处理方式,因为我在网上找到的所有代码都比我在尝试完成类似的事情时所做的要多得多!
当我在 XML 中将这些视图彼此相邻放置时,第一个视图的大小是正确的(它确实是宽度的一半减去一点点),但第二个视图要小得多,可能是宽度的一半最后一个视图减去更多!(我会发布一张照片,但不幸的是我没有足够的声誉来这样做......)
应该发生的是这两个框应该是相同的大小,无论我将它们放在 XML 中的什么位置。它们都应该是屏幕宽度的一半,减去一点额外的。
我知道这与我如何使用“setMeasuredDimension()”有关,但我不知道它是什么。我真的希望有人能为我澄清一下!谢谢!:)