无法以编程方式在其父布局中对齐中心自定义线性布局

时间:2018-11-07 03:43:14

标签: java android kotlin android-linearlayout

我有一个自定义的线性布局,这是一条红色路径,如我在下面的链接中所附加的图像中所示,该文本包含一个textview和一个按钮。我想通过使红色路径与父项匹配来使文本和按钮在灰色路径内居中,但我无法实现这一点。我过去通过设置布局参数以匹配父级并以编程方式设置重心以使这些元素居中来尝试多种方法。但是这些方法不起作用。 enter image description here

这是我的代码示例:

val layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
layoutParams.gravity = Gravity.CENTER
grayLayout.addView(redLayout)
grayLayout.layoutParams = layoutParams

任何帮助我的线索。预先感谢。

3 个答案:

答案 0 :(得分:0)

请勿对2个不同的对象重复使用相同的布局参数。为每个对象创建一个新的布局参数。

答案 1 :(得分:0)

layoutParams.gravity = Gravity.CENTER 

设置布局中包含的视图的重力。
因此,如果您想将灰色布局放在红色布局的中心
将此属性应用于红色布局。
您也可以在xml中完成此操作:

android:gravity="center"

答案 2 :(得分:0)

我已经找到答案了,我忘了以编程方式将layoutParams设置为redLayout,我只在xml文件中进行了设置。由于红色布局是自定义布局,因此除非我们通过编程方式设置,否则在XML中设置match_parent无效。 感谢大家抽出宝贵时间来提出这个问题。