首页 > 解决方案 > 如何以编程方式将复选框文本向左移动

问题描述

我想以编程方式将我的复选框移动到其文本的右侧,我尝试了一些方法,但它们没有用。

这是我的代码:

public class CheckBoxRegularFa extends AppCompatCheckBox {
 public CheckBoxRegularFa(Context context) {

    super(context);
    init();
}

public CheckBoxRegularFa(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public CheckBoxRegularFa(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
}

private void init() {

    setTypeface(AppController.getInstance().getFont(FontType.Medium));
}


@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    if(Build.VERSION.SDK_INT>=21)
    {

        ColorStateList colorStateList = new ColorStateList(
                new int[][]{

                        new int[]{-android.R.attr.state_enabled},
                        new int[]{android.R.attr.state_enabled}
                },
                new int[] {

                        Color.BLACK
                        ,getResources().getColor(R.color.color_primary)
                }
        );
        setButtonTintList(colorStateList);
    }
}
}

XML 中有一些解决方案,但我想以编程方式执行此操作。谢谢您的帮助

标签: android

解决方案


要以编程方式将复选框移动到其文本的右侧,您必须将布局方向设置为从右到左,如下所示:

checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

从右到左的输出:

rtl

如果您想将其更改回其初始状态,从左到右将如下所示:

checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);

从左到右的输出:

升


推荐阅读