我有一个带有标签和放射组的相对位置,我希望标签的基线和放射组的radiobutton子项对齐。我的代码是:
<TextView android:id="@+id/hi"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Hi"
android:textAppearance="@style/TextAppearance.AppCompat.Display2"
/>
<RadioGroup
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/hi"
android:layout_alignBaseline="@id/hi">
<RadioButton
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="There"/>
</RadioGroup>
相反,我得到的是射线组的顶部与标签的基线对齐,如下所示:
我怎样才能得到我想要的行为?我绝对不想要任何硬编码的边距,或中心对齐,我想对齐基线。
似乎view.getBaseline应该报告基线相对于视图顶部的位置,如果该方法为radiogroup返回0,则可以解释我看到的行为。实际上,radiogroup及其基类linearlayout似乎都没有定义该方法。但也许,我忽略了一些事情。
最佳答案
我也面临同样的问题。结果,您只需要添加两个属性。考虑第一个版本。它不起作用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.thomaskuenneth.temperatureconverter.MainActivity">
<EditText
android:id="@+id/input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:ems="5"
android:inputType="numberDecimal"
android:text="42.0" />
<RadioGroup
android:id="@+id/tempSrc"
android:layout_alignBaseline="@id/input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@id/input"
android:orientation="horizontal">
<RadioButton
android:id="@+id/srcCelsius"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="°C" />
<RadioButton
android:id="@+id/srcFahrenheit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="°F" />
<RadioButton
android:id="@+id/srcKelvin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="K" />
</RadioGroup>
</RelativeLayout>
结果与问题中的截图非常相似。
现在,请把下面几行…
android:baselineAlignedChildIndex="0"
android:baselineAligned="true"
…在
<RadioGroup />
标签内。现在,它将如下所示:
基线整齐对齐…
关于android - RelativeLayout中的基线对齐不适用于RadioGroup,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33917509/