我想把左边的单选按钮的文字放在右边
我找到了这个解决方案
<RadioGroup
android:id="@+id/radios"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="right"
android:inputType="text"
android:orientation="vertical" >
<RadioButton
android:id="@+id/first"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="@color/white"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="first"
android:textColor="@color/Black"
android:textSize="20dip" />
<RadioButton
android:id="@+id/second"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/Black"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="second"
android:textColor="@color/White"
android:textSize="20dp" />
<RadioButton
android:id="@+id/third"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/Maroon"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="third"
android:textColor="@color/Vanilla"
android:textSize="20dp" />
</RadioGroup>
但问题是文字引力会在左边,我想要把它放到右边,因为我正在写阿拉伯语单词
答案 0 :(得分:89)
尝试将以下属性添加到RadioButton
中,它应该可以正常工作,这样你仍然可以在单选按钮上保持涟漪效果:
android:layoutDirection="rtl"
android:textAlignment="textStart"
android:layout_gravity="start"
请记住在应用程序清单中将supportsRtl属性设置为true。
例如:
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layoutDirection="rtl"
android:textAlignment="textStart"
android:layout_gravity="start"
android:text="The test item a"
android:textSize="14sp" />
....
</RadioGroup>
会给出:
答案 1 :(得分:57)
在每个android:gravity="right"
中添加RadioButton
,如下所示。
<RadioGroup
android:id="@+id/radios"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="right"
android:inputType="text"
android:orientation="vertical" >
<RadioButton
android:id="@+id/first"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="@color/white"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="first"
android:textColor="@color/Black"
android:textSize="20dip"
android:gravity="right"/>
<RadioButton
android:id="@+id/second"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/Black"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="second"
android:textColor="@color/White"
android:textSize="20dp"
android:gravity="right"/>
<RadioButton
android:id="@+id/third"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/Maroon"
android:button="@null"
android:drawablePadding="30dp"
android:drawableRight="@android:drawable/btn_radio"
android:text="third"
android:textColor="@color/Vanilla"
android:textSize="20dp"
android:gravity="right" />
</RadioGroup>
答案 2 :(得分:19)
有一个名为android:drawableRight
的属性,可以设置文本的可绘制右侧,并将android:button
设置为null
。检查以下代码:
注意:这是示例,您可以申请所有的radioButton。
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Left"/>
答案 3 :(得分:17)
基于Irshu的答案,我建议采用材料波纹效应并产生以下结果的以下解决方案:
如果要使分隔线如GIF所示,则只需在单选按钮之间添加一个高度为1且背景为背景的视图即可。
browser.params.runtime
答案 4 :(得分:11)
添加:
if(date.before(date1));
答案 5 :(得分:7)
在xml中添加:( 4.2及以上)
android:layoutDirection="rtl"
对于旧版本而不是4.2使用来自android.support.v4.view的ViewCompat:
ViewCompat.setLayoutDirection(findViewById(R.id.radio_button), ViewCompat.LAYOUT_DIRECTION_RTL);
答案 6 :(得分:4)
非常简单,您希望文本显示在单选按钮的左侧,只需将布局方向更改为rtl(==从右到左):
android:layoutDirection="rtl"
答案 7 :(得分:3)
如果有人仍然想知道如何实现这一点,我认为这是一个更好的解决方案: RadioGroup课程延伸LineareLayout。您可以在其旁边添加一个简单的单选按钮和TextView,并轻松实现相同的效果:
<RadioGroup
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="خانم"/>
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="آقا"/>
<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RadioGroup>
然后制作如下布局:
答案 8 :(得分:3)
不要混淆看代码行,它只是简单的一行
$pdf = new PDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
// set default header data
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
//====================================================================================================+
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
//$fontname = TCPDF_FONTS::addTTFfont('/tcpdf/fonts/DejaVuSans.ttf', 'TrueTypeUnicode', '', 96);
//$pdf->SetFont($fontname, '', 14, '', false);
//$pdf->SetFont('DejaVuSans', '', 14, '', true);
//$fontname = TCPDF_FONTS::addTTFfont('../tcpdf/fonts/ARIALUNI.ttf', 'TrueTypeUnicode', '', 32);
$pdf->SetFont('dejavuserifcondensed', '', 14);
/*$font = $this->addTTFfont("DejaVuSans.ttf");
$pdf->SetFont($font, '', 14, '', false);*/
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//====================================================================================================+
$html = utf8_encode($html);
//====================================================================================================+
// Print text using writeHTMLCell()
//$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
$pdf->writeHTML($html, true, false, true, false, '');
//====================================================================================================+
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
//$name = ROOT_DIR . '/files/'.$username.'/bulletin.pdf';
$pdf->Output(ROOT_DIR . '/assets/uploads/lightning_bulletin/lightning_bulletin_'.date('Y-m-d-H-i-s').'.pdf', 'F');
// $pdf->Output('bulletin.pdf', 'I');
//====================================================================================================+
// END OF FILE
//====================================================================================================+
// $this->view(ROOT_DIR . '/assets/uploads/mail_uploads/bulletin_'.$date_str.'.pdf');
echo json_encode(array('url'=>base_url() . '/assets/uploads/lightning_bulletin/lightning_bulletin_'.date('Y-m-d-H-i-s').'.pdf'));
喜欢这样
android:layoutDirection="rtl";//right to left,if you want you can set ltr
并谨慎地刷新预览以更好地选择“设计不是蓝图”
答案 9 :(得分:2)
我已经使用了类似下面代码的技巧来实现所有SDK中的默认UI和默认选择行为:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="ltr"
android:orientation="vertical"
android:padding="10dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="30dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="RadioButton 1"
android:textColor="@color/Black" />
<RadioButton
android:id="@+id/rb1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:scaleX="-1" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="30dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="RadioButton 2"
android:textColor="@color/Black" />
<RadioButton
android:id="@+id/rb2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:scaleX="-1" />
</RelativeLayout>
</LinearLayout>
现在让按钮单选,只需编写按钮onCheckedChanged
监听器的代码,并取消选中其他按钮。
像这样:
rb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
if(checked)
rb2.setChecked(false);
}
});
答案 10 :(得分:2)
试试这段代码:
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="right">
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textDirection="rtl"
android:layout_margin="4dp"
android:layoutDirection="rtl"
android:textAlignment="textStart"
android:layout_gravity="start"
android:text="اول"
android:textSize="15dp"/>
</RadioGroup>
结果: show result
答案 11 :(得分:1)
尝试将以下属性添加到RadioButtons中,
<RadioGroup
android:id="@+id/radioGroup_sample"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="rtl"
android:orientation="horizontal"
android:weightSum="2">
<RadioButton
android:id="@+id/radio_sample_one"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:layoutDirection="rtl"
android:text="دریافت کد با ایمیل"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorSingle"/>
<RadioButton
android:id="@+id/radio_sample_tow"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:layoutDirection="rtl"
android:text="دریافت کد با پیامک"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorSingle"/>
</RadioGroup>
我的示例代码的图片
答案 12 :(得分:1)
尝试此代码并将值更改为您的阿拉伯语单词..
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RadioGroup
android:id="@+id/radioGender"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radioMale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radio_male"
android:checked="true" />
<RadioButton
android:id="@+id/radioFemale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radio_female" />
</RadioGroup>
<Button
android:id="@+id/btnDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_display" />
</LinearLayout>
答案 13 :(得分:1)
要保持材料样式,请使用android:drawableRight =“?android:attr / listChoiceIndicatorSingle”
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:text="rtl button"
android:drawableRight="?android:attr/listChoiceIndicatorSingle"/>
答案 14 :(得分:1)
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fontPath="@string/font_nunito_light"
android:text="Male"
android:layout_marginTop="@dimen/dp_10"
android:drawablePadding="@dimen/dp_10"
android:drawableStart="@drawable/selector_radio"
android:button="@null"
android:id="@+id/rb_"
android:checked="true"
android:textSize="@dimen/sp_15"
答案 15 :(得分:1)
看看"CustomChoiceList" example,在那里解释了如何创建自己的复选框/单选按钮或如何使用android设置中使用的默认复选框/单选按钮创建ListView , 例如。你应该特别注意res / layout / sample_main.xml文件,它会得到很多。
答案 16 :(得分:0)
由于没有人提到这一点,因此下面是您可以通过编程方式在有人尝试的情况下进行操作的方法
RadioButton button = new RadioButton(context);
ViewCompat.setLayoutDirection(button, ViewCompat.LAYOUT_DIRECTION_RTL);
// Create the layout params for our buttons
RadioGroup.LayoutParams layoutParams = new
RadioGroup.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
button.setLayoutParams(layoutParams);
layoutParams.gravity = Gravity.RIGHT;
button.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
button.setGravity(Gravity.CENTER);
答案 17 :(得分:0)
您可以在RadioButtons
中更改RadioGroup
的方向
在您的RadioGroup属性中添加android:layoutDirection="rtl"
。
<RadioGroup
android:id="@+id/role_radioGroup_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="rtl">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/manager" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/fleetVehicle" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/personalVehicle" />
</RadioGroup>
答案 18 :(得分:0)
<RadioButton
android:id="@+id/myRb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="gravity"
android:gravity="left|center_vertical"
android:layoutDirection="rtl"
android:layout_gravity="start"
/>
现在Rtl会将您的文本向右移动,