将FlexBox子元素添加到FlexBox后,如何更改其宽度

我们有一个按钮和一个视图(将按钮与其他视图分开的一行)的线性布局。 我们将linearLayout以编程方式添加到flexBox元素,并将Flex上的FlexGrow设置为1f。 问题是,我不能让内部按钮匹配父线性布局的宽度,同时设置最小宽度。

当我将按钮的宽度(xml)设置为match_parent时,父元素的大小只有按钮中的文本的大小(在文本更改的情况下,它的大小要大20%左右)。 在这个例子中,setMinnimumWidth()似乎没有任何影响。

但是,当我将按钮宽度(在xml中)设置为WrapContent然后setMinimumWidth()确实工作。 该按钮显示为正确的大小,但父元素比按钮大得多(大概是为了填充flexBox行中的剩余空间。

我怎样才能让按钮和它的父母是同样的大小,同时也能够设置最小宽度?

xml为我们添加的flexbox元素,

  

添加元素并设置宽度的代码

 val button = linearLayout.findViewById(R.id.button_id) as Button button.width = width button.minimumWidth = width flexBox.addView(linearLayout) val layoutParams = linearLayout.layoutParams layoutParams.width = width linearLayout.layoutParams = layoutParams linearLayout.invalidate() linearLayout.requestLayout() 

代码在kotlin。