Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何以编程方式向左移动复选框文本_Android - Fatal编程技术网

Android 如何以编程方式向左移动复选框文本

Android 如何以编程方式向左移动复选框文本,android,Android,我想以编程方式将复选框移到文本的右侧,我尝试了一些方法,但没有成功 这是我的密码: public class CheckBoxRegularFa extends AppCompatCheckBox { public CheckBoxRegularFa(Context context) { super(context); init(); } public CheckBoxRegularFa(Context context, AttributeSet attrs) {

我想以编程方式将复选框移到文本的右侧,我尝试了一些方法,但没有成功

这是我的密码:

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中有一些解决方案,但我希望以编程方式实现这一点。
感谢您的帮助

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

checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
从右向左的输出:

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

checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
checkBoxRegularFa.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
从左到右的输出: