android - 如何在 RelativeLayout 中的 TextView 中设置文本的正确位置?

标签 android android-layout android-relativelayout textview

我有 RelativeLayout 并且在其中有两个 TextView。这是我当前的 RelativeLayout 的 xml 代码:

    <RelativeLayout
        android:id="@+id/FullPriceInForeignLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="20"
        android:background="@drawable/bck_price_foreign"
        android:gravity="center"
        android:paddingBottom="@dimen/home_foreign_margin"
        android:paddingTop="@dimen/home_foreign_margin"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        >

        <TextView
            android:id="@+id/currencyForeign"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:text="USD"
            style="@style/SmallWhiteTextViewWithShadow"
            android:background="@color/orange"
            />

        <TextView
            android:id="@+id/valueInLocal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/currencyForeign"
            android:layout_marginLeft="@dimen/currency_price_margin"
            android:layout_toRightOf="@id/currencyForeign"
            android:text="0.00"
            android:background="@color/orange"
            style="@style/BigWhiteTextViewWithShadow"
            />

    </RelativeLayout>

样式是:

<style name="SmallWhiteTextViewWithShadow">
    <item name="android:textAppearance">@android:style/TextAppearance.Medium.Inverse</item>
    <item name="android:shadowColor">#55000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.01</item>
</style>

<style name="BigWhiteTextViewWithShadow">
    <item name="android:textAppearance">@android:style/TextAppearance.Large.Inverse</item>
    <item name="android:textSize">50sp</item>
    <item name="android:shadowColor">#55000000</item>
    <item name="android:shadowDx">2</item>
    <item name="android:shadowDy">2</item>
    <item name="android:shadowRadius">0.02</item>
</style>

它看起来像这样:

enter image description here

我特意将两个小部件的背景都涂成橙色,这样您就可以看出问题所在。 我希望单词 EUR 和 118.0 在顶部具有相同的对齐方式,并且 118.0 在布局中居中,但我不能那样做。

哦,顺便说一句,RelativeLayout 位于水平 LinearLayout 内部并且有自己的权重。

提前致谢, 德维提

最佳答案

RelativeLayout 中,您可以使用 alignParentTop 属性设置 subview 以在父 View 顶部对齐两个 View ,也可以使用 android:includeFontPadding 默认为 true 并允许 TextView 自动为英语以外的其他语言(例如法语的重音)留出一些空间,如下所示:

<RelativeLayout
    android:id="@+id/FullPriceInForeignLayout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="20"
    android:background="@drawable/bck_price_foreign"
    android:gravity="center"
    android:paddingBottom="@dimen/home_foreign_margin"
    android:paddingTop="@dimen/home_foreign_margin"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp" >

    <TextView
        android:id="@+id/currencyForeign"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:includeFontPadding="false"
        android:text="USD"
        style="@style/SmallWhiteTextViewWithShadow"
        android:background="@color/orange" />

    <TextView
        android:id="@+id/valueInLocal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:includeFontPadding="false"
        android:layout_marginLeft="@dimen/currency_price_margin"
        android:layout_toRightOf="@id/currencyForeign"
        android:text="0.00"
        android:background="@color/orange"
        style="@style/BigWhiteTextViewWithShadow" />

</RelativeLayout>  

Here您可以找到完美的解决方法(如 Custom TextView 或负边距)。

关于android - 如何在 RelativeLayout 中的 TextView 中设置文本的正确位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23567268/

相关文章:

android - 自定义 ListView 适配器的 ResourceNotFoundException

android - 相对布局中的边距

android - 相对布局 : Many options if elements are GONE

android - 安装Google Play服务时出错,我在做什么错?

android - 只有创建 View 层次结构的原始线程才能使用 Rxjava 接触其 View

java - Google 云端硬盘每次登录失败

android - EditText 填充在 Android 中无法正常工作

java - 使用 ToggleButton 在单击按钮时将数据发送到另一个 Activity

android - 问题 Android 设备 - Charles 代理 - 互联网连接

javascript - 如何从缓冲区渲染数据? react native Javascript