【问题标题】:Cannot align center custom linear layout inside its parent layout programmatically无法以编程方式在其父布局内对齐中心自定义线性布局
【发布时间】:2018-11-07 16:56:33
【问题描述】:

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

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

【问题讨论】:

  • Hi Touch,你能提供一个代码示例吗?
  • @Lex 我已经添加了代码。
  • 尝试在 LinearLayout 上设置重力参数。

标签: java android kotlin android-linearlayout


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    layoutParams.gravity = Gravity.CENTER 
    

    设置布局中包含的视图的重力。
    所以如果你想在红色布局中居中灰色布局
    将此属性应用于红色布局。
    你也可以在xml里做:

    android:gravity="center"
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2019-07-30
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多