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

我有一个自定义的线性布局,它是一条红色路径,如我在下面的链接中附加的图像所示,它包含一个文本视图和一个按钮。我想通过使红色路径与父路径匹配来使文本和按钮在灰色路径内居中,但我无法实现。我曾经尝试过很多方法,通过设置布局参数来匹配父元素并以编程方式设置重心以使这些元素居中。但是这些方法都行不通。在此处输入图片说明

http://img1.mukewang.com/61d6b6d100019df107200152.jpg

这是我的代码示例:


val layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)

layoutParams.gravity = Gravity.CENTER

grayLayout.addView(redLayout)

grayLayout.layoutParams = layoutParams

任何线索来帮助我。提前致谢。


婷婷同学_
浏览 172回答 3
3回答

慕森王

layoutParams.gravity = Gravity.CENTER设置布局中包含的视图的重力。因此,如果您想将灰色布局居中放置在红色布局中,请将此属性应用于红色布局。您也可以在 xml 中执行此操作:android:gravity="center"

www说

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

当年话下

我已经找到了答案,我忘了以编程方式将 layoutParams 设置为我的 redLayout,我只将它设置在 xml 文件中。由于红色布局是自定义布局,除非我们以编程方式设置,否则在 xml 中设置 match_parent 不起作用。感谢大家花时间提出这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java