将标签与第一个RadioButton的文本对齐

时间:2013-04-27 22:04:10

标签: android alignment baseline

我的TableLayout有2列:标签和输入字段(SpinnerEditTextRadioGroup)。我想将RadioGroup的标签与第一个单选按钮的文本完全对齐。文本“拿它”应该在红线上。怎么做?有可能吗?

example with label -> gravity=top

这是XML - 剥离到相关的TableRow

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/layoutEditMedication1"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  android:padding="16dp"
  tools:context=".Main" >

  <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@id/buttons" >

    <TableLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:shrinkColumns="1"
      android:stretchColumns="1" >

      <TableRow style="@style/EditMedicationTableRowT" >

        <TextView
          style="@style/EditMedicationLabel"
          android:layout_gravity="top"
          android:text="@string/i_need_to_take" />

        <RadioGroup
          style="@style/EditMedicationTableRowB"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical" >

          <RadioButton
            android:id="@+id/radioScheduleDaily"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/schedule_daily" />

          <RadioButton
            android:id="@+id/radioScheduleSpecial"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/schedule_special" />
        </RadioGroup>
      </TableRow>
    </TableLayout>
  </ScrollView>

</RelativeLayout>

使用的样式是:

<resources>
    <style name="EditMedicationTableRowT">
        <item name="android:paddingTop">8dp</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
    </style>

    <style name="EditMedicationTableRowB">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:paddingBottom">8dp</item>
        </style>

    <style name="EditMedicationLabel">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:paddingRight">16dp</item>
        <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    </style>
</resources>

我知道我可以使用两个TableRows制作两个RadioGroups,每个RadioButton一个RadioGroup,然后以编程方式编写代码,使其看起来像是{{1}} 。但也许有一个简单的解决方案。

API为8及以上。

1 个答案:

答案 0 :(得分:0)

试试这个

<TextView
  style="@style/EditMedicationLabel"
  android:layout_gravity="top"
  android:paddingBottom="0dp"
  android:text="@string/i_need_to_take" />