我有一个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
重力值时的布局:
将price
重力值设置为居中时的布局:
为什么会发生这种情况?如何解决这个问题?
UPD :不要编辑我的问题:我更改price
TextView的重力,price
是更改的重力。这是我要问的奇怪行为。
答案 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>