【问题标题】:Cannot set TextView's gravity in constraint layout无法在约束布局中设置 TextView 的重力
【发布时间】:2018-06-30 22:43:08
【问题描述】:

我以编程方式将 TextView 添加到 ConstrainLayout。定位工作正常,但我无法将文本的重力设置为左。它位于指南之间。

conLayout.addView(myTextView);
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(conLayout);
constraintSet.connect(myTextView.getId(), ConstraintSet.TOP, divider.getId(), ConstraintSet.BOTTOM);
constraintSet.connect(myTextView.getId(), ConstraintSet.LEFT, R.id.guideline1, ConstraintSet.LEFT);
constraintSet.connect(myTextView.getId(), ConstraintSet.RIGHT, R.id.guideline2, ConstraintSet.LEFT);
constraintSet.constrainDefaultHeight(myTextView.getId(), ConstraintSet.WRAP_CONTENT);
constraintSet.applyTo(conLayout);
myTextView.setGravity(Gravity.LEFT);

当我在 XML 中执行上述所有操作时,重力正在起作用,但我需要以编程方式添加此文本视图。

【问题讨论】:

  • 你能发布你的布局 XML 吗?

标签: android layout textview android-constraintlayout gravity


【解决方案1】:
myTextView.setGravity(Gravity.LEFT);

如果我没记错的话:它在 TextView 中设置了“内部重力”,也就是文本重力。如果这就是您想要的 - 请确保将 LayoutParams 设置为您想要的大小。 (默认是 WrapContent,宽度和高度)

【讨论】:

    【解决方案2】:

    尝试使用这个

    LayoutParams lp = new LayoutParams();
        lp.gravity = Gravity.LEFT;
        myTextView.setLayoutParams(lp);
    

    【讨论】:

      【解决方案3】:

      我通过使用重力:左属性创建“虚拟”文本视图并将实际 TextView 的 LayoutParams 设置为 dummy.getLayoutParams() 解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        相关资源
        最近更新 更多