从 constraintlayout 的循环中设置视图子项的重力

Set gravity of view children from loop of constraintlayout

当我访问使用 ConstraintLayout 循环动态创建为 TextView 的子级时,它们返回为 View,没有 setGravity .

有谁知道设置这些视图重力的方法(TextView/child 的重力,而不是布局)?

for (int i = 0;i < constraintLayout.getChildCount();i++) {
    final View child = constraintLayout.getChildAt(i);
    Object tag = child.getTag(R.id.tagId);
    if(tag != null) {
        //child.setGravity(Gravity.START); // Doesn't work...
    } else {} }

我没有看到任何设置 Gravity 的选项 ConstraintLayout.LayoutParamsConstraintSet

此外,我尝试了 final TextView child = (TextView) constraintLayout.getChildAt(i);:但是,这导致了致命异常:java.lang.ClassCastException:android.widget.ImageView 无法转换为 android.widget.TextView。注意:子项是textviews,不是imageviews...

首先将视图投射到 TextView,然后调用 setGravity

final View child = constraintLayout.getChildAt(i);
Object tag = child.getTag(R.id.tagId);
if (tag != null) {
    if (child instanceof TextView) {
        TextView tv = (TextView) child;
        tv.setGravity(Gravity.START);
    }
} else {}