未对齐的单选按钮文本
Misaligned Radio button text
我的应用程序中有单选按钮,我通过代码动态添加的。
这是我将按钮添加到的组的布局定义:
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/answer_radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="15dp"
android:layout_margin="20dp"
android:orientation="vertical" >
</RadioGroup>
这是我动态添加单选按钮的代码:
for (String value : values) {
RadioButton radioButton = (RadioButton) ViewGroup.inflate(context,
R.layout.radio_button_layout, null);
radioButton.setText(value);
answersRadioGroup.addView(radioButton);
}
radio_button_layout
为:
<android.support.v7.widget.AppCompatRadioButton xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:textColor="@color/font_color_gray"
android:textSize="20sp"/>
我的问题是我的文本与单选按钮不对齐(我担心垂直对齐):
我确定这显然不是常见情况,但有人可以提示我应该去哪里寻找问题吗?
编辑:
实际上我意识到如果我使用 AppCompatRadioButton
会更好,因为我的目标是应用程序兼容性。现在这已经改变了(也有问题的来源),但没有区别。
EDIT2
以下是相关样式,至少我认为是这样的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="windowNoTitle">true</item>
<!-- We will be using the toolbar so no need to show ActionBar -->
<item name="windowActionBar">false</item>
<item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item>
</style>
<!-- Styling the font of the radio buttons -->
<style name="MyRadioButtonStyle" parent="@android:style/Widget.Holo.Light.CompoundButton.RadioButton">
<item name="android:button">@drawable/apptheme_btn_radio_holo_light</item>
</style>
可以看出我现在使用自定义按钮图标,但即使不使用自定义图标也存在问题。
EDIT3
现在它变得更有趣了。我确定错位是由 inflation.
引起的
我试过如下修改 RadioGroup
布局:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/answer_radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="15dp"
android:layout_margin="20dp"
android:orientation="vertical" >
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:textColor="@color/font_color_gray"
android:text="Alabala"
android:textSize="20sp"/>
</RadioGroup>
然后用上面包含的代码附加实际的单选按钮。结果如下:
如您所见,布局中的单选按钮正确垂直对齐,但膨胀按钮不是。请问,有什么想法吗?
有 2 个不同的原因可能是此类问题的根本原因:
AppCompatRadioButton
在代码 behind/in 布局 中设置了 paddingBottom
text
属性 中的不可见字符(在这个问题中正是这个问题背后的原因)
我的应用程序中有单选按钮,我通过代码动态添加的。
这是我将按钮添加到的组的布局定义:
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/answer_radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="15dp"
android:layout_margin="20dp"
android:orientation="vertical" >
</RadioGroup>
这是我动态添加单选按钮的代码:
for (String value : values) {
RadioButton radioButton = (RadioButton) ViewGroup.inflate(context,
R.layout.radio_button_layout, null);
radioButton.setText(value);
answersRadioGroup.addView(radioButton);
}
radio_button_layout
为:
<android.support.v7.widget.AppCompatRadioButton xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:textColor="@color/font_color_gray"
android:textSize="20sp"/>
我的问题是我的文本与单选按钮不对齐(我担心垂直对齐):
我确定这显然不是常见情况,但有人可以提示我应该去哪里寻找问题吗?
编辑:
实际上我意识到如果我使用 AppCompatRadioButton
会更好,因为我的目标是应用程序兼容性。现在这已经改变了(也有问题的来源),但没有区别。
EDIT2 以下是相关样式,至少我认为是这样的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="windowNoTitle">true</item>
<!-- We will be using the toolbar so no need to show ActionBar -->
<item name="windowActionBar">false</item>
<item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item>
</style>
<!-- Styling the font of the radio buttons -->
<style name="MyRadioButtonStyle" parent="@android:style/Widget.Holo.Light.CompoundButton.RadioButton">
<item name="android:button">@drawable/apptheme_btn_radio_holo_light</item>
</style>
可以看出我现在使用自定义按钮图标,但即使不使用自定义图标也存在问题。
EDIT3 现在它变得更有趣了。我确定错位是由 inflation.
引起的我试过如下修改 RadioGroup
布局:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/answer_radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="15dp"
android:layout_margin="20dp"
android:orientation="vertical" >
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:textColor="@color/font_color_gray"
android:text="Alabala"
android:textSize="20sp"/>
</RadioGroup>
然后用上面包含的代码附加实际的单选按钮。结果如下:
如您所见,布局中的单选按钮正确垂直对齐,但膨胀按钮不是。请问,有什么想法吗?
有 2 个不同的原因可能是此类问题的根本原因:
AppCompatRadioButton
在代码 behind/in 布局 中设置了 text
属性 中的不可见字符(在这个问题中正是这个问题背后的原因)
paddingBottom