Android 当父布局的子布局缩放时,如何调整其大小?

Android 当父布局的子布局缩放时,如何调整其大小?,android,android-layout,Android,Android Layout,我有一个水平滚动视图,其中包含一个水平线性布局,该布局包含一系列自定义视图(工具栏按钮): ... 现在,在运行时,我想使用setScaleX和setScaleY将工具栏按钮缩小。缩放起作用,但工具栏按钮的位置不变,线性布局的大小也不变 当我在xml(而不是运行时)中的工具栏按钮中使用scaleX和scaleY时,我得到了相同的结果 我的目标是动态缩小工具栏按钮,并使其周围的空间也缩小。我该怎么做?谢谢。您需要告诉家长重新绘制自己: if (getParent() instanceof Vi

我有一个水平滚动视图,其中包含一个水平线性布局,该布局包含一系列自定义视图(工具栏按钮):


...
现在,在运行时,我想使用setScaleX和setScaleY将工具栏按钮缩小。缩放起作用,但工具栏按钮的位置不变,线性布局的大小也不变

当我在xml(而不是运行时)中的工具栏按钮中使用scaleX和scaleY时,我得到了相同的结果


我的目标是动态缩小工具栏按钮,并使其周围的空间也缩小。我该怎么做?谢谢。

您需要告诉家长重新绘制自己:

if (getParent() instanceof View)
    ((View) getParent()).invalidate();

请参阅。

Invalidate将不会重新测量,您需要在父级上调用
requestLayout()
。@Pierre这个问题很老了,如果OP最终找到了解决方案,idk。但是我检查了文件,看来你是对的。
if (getParent() instanceof View)
    ((View) getParent()).invalidate();