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

时间:2014-05-09 14:34:30

标签: android android-layout 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在布局中居中,但我无法做到。

哦,顺便说一下,R​​elativeLayout位于水平LinearLayout的内部并且有自己的权重。

提前致谢, Deveti

2 个答案:

答案 0 :(得分:1)

RelativeLayout内,您可以设置具有alignParentTop属性的子视图,以将两个视图对齐在父视图的顶部,并使用默认为{{1的android:includeFontPadding并允许true为英语以外的其他语言(例如重音的法语)自动创建一些空格,如下所示:

TextView

Here您可以找到完美的工作区(<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> 或负边距)。

答案 1 :(得分:0)

添加一个属性android:gravity="center",如下所述,

        <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:gravity="center"


        android:text="0.00"
        android:background="@color/orange"
        style="@style/BigWhiteTextViewWithShadow"
        />