我有 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>
它看起来像这样:
我特意将两个小部件的背景都涂成橙色,这样您就可以看出问题所在。 我希望单词 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/