无法在约束布局中设置TextView的重力

时间:2018-01-22 10:19:26

标签: android layout textview android-constraintlayout gravity

我正在以编程方式将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中执行以上所有操作时,重力正常,但我需要以编程方式添加此textview。

3 个答案:

答案 0 :(得分:0)

myTextView.setGravity(Gravity.LEFT);

如果我没记错的话:它设定了内部重力"又称TextView中的文本重力。如果这是你想要的 - 确保设置所需大小的LayoutParams。 (默认是WrapContent,宽度和高度)

答案 1 :(得分:0)

尝试使用此

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

答案 2 :(得分:0)

我通过创建" dummy"解决了这个问题。 textview with gravity:left属性,并将实际TextView的LayoutParams设置为dummy.getLayoutParams()。