1

您好我需要为每个状态和 RTL 文本创建一个带有两个不同图片的自定义单选按钮类。我制作了按钮,但无法为 api 8 和 upper 制作文本 RTL。如果有人可以帮助我,我会很高兴

RadioGroup crdg = (RadioGroup) findViewById(R.id.radioGroup11);

制作单选按钮

rdbt1 = new RadioButton(new ContextThemeWrapper(
            getApplicationContext(), R.style.styleName));

    rdbt1.setButtonDrawable(android.R.color.transparent);

rdbt1.setText("for example(RTL text)");

将 RadioButton 添加到 Radio Group

crdg.addView(rdbt1);

样式名称是

<style name="styleName" parent="android:Widget.CompoundButton.RadioButton"> <item name="android:button">@null</item> <item name="android:drawableRight">@drawable/rdb_question_selector</item> </style>

4

2 回答 2

0

您只需将重力设置为Gravity.END So 例如:

 RadioButton tempRadioButton = new RadioButton(this);
 tempRadioButton.setGravity(Gravity.END);
 tempRadioButton.setText("for example(RTL text)");

这将告诉 Android 将文本对齐到尊重 RTL 语言的视图的“结尾”。

于 2014-12-17T09:54:13.197 回答
0

添加这个

forceRTLIfSupported();

在你的 oncreate()

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
    private void forceRTLIfSupported()
    {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
            getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
        }
    }
于 2017-04-17T16:51:50.473 回答