Android编辑器中布局奇怪的TextView行为

时间:2017-07-11 12:54:48

标签: android xml android-layout

我有一个xml布局文件,用于显示ListView项。这是xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
    android:id="@+id/task_item_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_item_background"
    android:orientation="horizontal"
    android:weightSum="1">

    <RelativeLayout
        android:id="@+id/task_item_icon_container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.2">

        <ImageView
            android:id="@+id/item_icon"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            app:srcCompat="@android:drawable/stat_notify_sync" />

    </RelativeLayout>

    <TextView
        android:id="@+id/item_text"
        android:layout_width="0dp"
        android:layout_height="75dp"
        android:layout_weight="0.6"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:text="appName"
        android:textAlignment="textStart"
        android:textSize="20sp" />

    <RelativeLayout
        android:id="@+id/additional_info_container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.19">

        <TextView
            android:id="@+id/price"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:text="0,1 $"
            android:textSize="20sp" />
    </RelativeLayout>
</LinearLayout>

我希望标识为TextView的{​​{1}}将重力值设置为居中。但是当我这样做时,price有些人会跳到中心。这种行为只能在编辑器中看到,我的设备上的一切都很好。

未设置item_text重力值时的布局:

no gravity

price重力值设置为居中时的布局:

gravity: center

为什么会发生这种情况?如何解决这个问题?

UPD :不要编辑我的问题:我更改price TextView的重力,price是更改的重力。这是我要问的奇怪行为。

2 个答案:

答案 0 :(得分:1)

在身份TextView的{​​{1}}添加

item_text

这是因为android:layout_gravity="center" text_alignment之间存在不一致的规范。较旧的手机会忽略gravity,这可以解释为什么它适用于您的设备。

答案 1 :(得分:1)

进行以下更改

<RelativeLayout
            android:id="@+id/additional_info_container"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.19">
            <TextView
                android:id="@+id/price"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" //here
                android:layout_margin="5dp"
                android:text="0,1 $"
                android:layout_centerVertical="true" //add this
                android:textSize="20sp" />
        </RelativeLayout>