Android 如何在列表视图中水平居中放置组合列表视图项?

Android 如何在列表视图中水平居中放置组合列表视图项?,android,android-listview,Android,Android Listview,我有一个列表视图,显示来自扩展了ArrayAdapter的自定义适配器的项目。每个项目都是一个自定义布局,根视图为RelativeLayout。现在,我希望这个RelativeLayout在列表视图中水平居中,但我尝试的一切似乎都失败了 下面是我的自定义适配器getView方法: @Override public View getView(int position, View convertView, ViewGroup parent) { View row = mInflater.in

我有一个列表视图,显示来自扩展了
ArrayAdapter
的自定义适配器的项目。每个项目都是一个自定义布局,根视图为
RelativeLayout
。现在,我希望这个
RelativeLayout
在列表视图中水平居中,但我尝试的一切似乎都失败了

下面是我的自定义适配器
getView
方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = mInflater.inflate(R.layout.screens_listview_row, parent, false);
    return row;
}
下面是文件
screens\u listview\u row.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/root"
   .....
   android:layout_gravity="center_horizontal" >
</RelativeLayout>

一开始,我在
RelativeLayout
中的布局参数似乎被完全忽略了,事实确实如此,因为我使用了
充气(R.layout.screens\u listview\u row,null)
,这就是问题所在


所以现在唯一被忽略的是
layout\u gravity
参数。我还尝试了
布局\u marginLeft
(这个布局中的所有内容都是绝对大小的,所以我可以通过给它留一个左边距来居中…),但Android也忽略了它。这里有什么问题?

尝试使用重力而不是布局重力(因为我知道重力是指布局的内容)



我没有找到如何控制
列表视图中项目的位置,因此我将
列表视图的宽度设置为项目的宽度,然后控制其位置(实际上控制项目的位置)。

相对布局中没有重力。但是,您可以使用centerInParent、centerHorizontal和centerVertical将每个子项居中。当前没有子项。相对布局只是有一个不居中的背景图像,应该居中。显示如何设置背景。文件中的一个属性:
android:background=“@drawable/screens\u listview\u row\u background”
通常背景会延伸到整个项目。这是一个9-patch吗?我试过android:gravity=“center\u horizontal”
,但也不起作用。这适用于线性布局和其他一些布局,反之亦然。重力定义子元素的位置,布局\重力在子元素中设置以覆盖该属性。谢谢,这正是我所需要的+1。问题是,在平板电脑上,您无法使用拇指滚动内容。剩下的就是糟糕的用户体验。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/root"
   .....
   android:gravity="center_horizontal" >
</RelativeLayout>