gpt4 book ai didi

android - RelativeLayout 中的基线对齐不适用于 RadioGroup

转载 作者:搜寻专家 更新时间:2023-11-01 08:39:43 25 4
gpt4 key购买 nike

我有一个带有标签和 RadioGroup 的 RelativeLayout,我希望标签的基线与 RadioGroup 的 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>

相反,我得到的是 RadioGroup 的顶部与标签的基线对齐,如下所示:

enter image description here

如何获得我想要的行为?我绝对不想要任何硬编码的边距或居中对齐,我想要对齐基线。

似乎 View.getBaseline 应该报告基线相对于 View 顶部的位置,如果该方法为 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>

结果与问题中的屏幕截图非常相似。

RadioButtons are not baseline-aligned

现在,请输入以下几行...

    android:baselineAlignedChildIndex="0"
android:baselineAligned="true"

...在<RadioGroup />里面标签。

现在,它看起来像这样:

enter image description here

整齐的基线对齐...

关于android - RelativeLayout 中的基线对齐不适用于 RadioGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33917509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com