【问题标题】:Programmatically set android:layout_centerHorizontal以编程方式设置 android:layout_centerHorizo​​ntal
【发布时间】:2011-11-06 05:41:54
【问题描述】:

在 xml 中,您可以执行以下操作:

<TextView
    ...
    android:layout_centerHorizontal="true"
    ...
/>

当我拥有TextView 的实例时,我将如何以编程方式执行此操作?

【问题讨论】:

    标签: android android-layout centering android-relativelayout


    【解决方案1】:

    您应该使用RelativeLayout.LayoutParams 类的addRule 方法。

    layoutparams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    mTextView.setLayoutParams(layoutParams);
    

    【讨论】:

    • 当我添加我的浏览器时,我的浏览器没有显示您的浏览器。你先发布了你的,所以你得到了我的投票。
    • 注意如果设置为 FALSE,你必须从头开始创建一个新的 layoutParams 没有 CENTER_HORIZONTAL 然后分配它
    • @max4ever 我认为你可以使用 removeRule()
    【解决方案2】:

    假设您有一个名为 TextView 的存储在变量 tv 中:

    RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) tv.getLayoutParams();
    lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
    tv.setLayoutParams(lp);
    

    应该做的伎俩。

    【讨论】:

    • 请务必查看lpgetLayoutParams 可以返回 null
    【解决方案3】:

    假设txtPhone 是我们试图将其水平居中放置的文本视图。

    如果您使用的是 Java,请使用以下代码,

    RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) txtPhone.getLayoutParams();
    layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    txtPhone.setLayoutParams(layoutParams);
    

    如果您使用的是 Kotlin,请使用以下代码,

    val layoutParams = txtPhone.getLayoutParams() as RelativeLayout.LayoutParams
    layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL)
    txtPhone.setLayoutParams(layoutParams)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 2018-11-26
      • 2011-04-18
      • 2012-07-18
      • 2016-02-15
      • 2014-07-26
      • 1970-01-01
      相关资源
      最近更新 更多