pet*_*syn 8 android radio-button
当使用android:drawableLeft时,Android 4.2无法正确显示RadioButton.drawableRight没问题.
左侧的drawable与Radio按钮图形重叠.并且至少Android 2.2-4.1似乎可以使用drawableLeft.
你知道解决方法吗?以编程方式设置drawableLeft无法解决此问题.
4.2 Android问题

4.1 Android正确渲染(至少Android 2.2-4.0也正确渲染)

Android XML布局代码:
<RadioButton
android:id="@+id/radio_cloud_dropbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:drawableLeft="@drawable/dropbox_logo"
android:checked="true"
android:text="@string/lbl_cloud_dropbox" />
Run Code Online (Sandbox Code Playgroud)
你可以使用单选按钮:
设置按钮@null和drawable left设置你的按钮:
<RadioGroup
android:id="@+id/hn_radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/rb_Select_by_proposal"
style="@style/RadioButtonText"
android:checked="true"
android:tag="1"
android:text="@string/select_by_proposal" />
<RadioButton
android:id="@+id/rb_Select_by_first_letter"
style="@style/RadioButtonText"
android:tag="2"
android:text="@string/select_by_first_letter" />
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
这个风格:
<style name="RadioButtonText">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:button">@null</item>
<item name="android:drawableLeft">@drawable/radio_selector</item>
<item name="android:drawablePadding">10dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
对于按钮和文本之间的空格使用:
<item name="android:drawablePadding">10dp</item>
Run Code Online (Sandbox Code Playgroud)
我对此错误的临时解决方案是用包含和 的(s)替换父RadioGroup布局。尽管还有其他解决方案。TableLayoutTableRowRadioButtonTextView
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableRow android:onClick="onDropboxClick" >
<RadioButton
android:id="@+id/radio_cloud_dropbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:onClick="onDropboxClick" />
<TextView
android:drawableLeft="@drawable/cloud_logo_dropbox"
android:gravity="center_vertical"
android:text="Dropbox" />
</TableRow>
<TableRow android:onClick="onGoogleDriveClick" >
<RadioButton
android:id="@+id/radio_cloud_google_drive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:onClick="onGoogleDriveClick" />
<TextView
android:drawableLeft="@drawable/cloud_logo_google_drive"
android:gravity="center_vertical"
android:text="Google Drive" />
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
然而,由于RadioGroup不能与嵌套布局一起使用,因此必须在事件处理程序方法的关联活动中手动完成选择/取消选择选中状态:
public void onDropboxClick(View view) {
checkRadio(R.id.radio_cloud_dropbox);
}
public void onGoogleDriveClick(View view) {
checkRadio(R.id.radio_cloud_google_drive);
}
private void checkRadio(int radioId) {
if (radioId == R.id.radio_cloud_dropbox) {
dropboxRadio.setChecked(true);
googleDriveRadio.setChecked(false);
} else if (radioId == R.id.radio_cloud_google_drive) {
dropboxRadio.setChecked(false);
googleDriveRadio.setChecked(true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |