ListView中的中心文本项

jac*_*hab 5 android android-widget android-layout

我怎么能水平居中对齐的文本项ListView在我的Layout
老实说,在问这样一个基本问题之前,我用谷歌搜索了至少一个小时.

谢谢.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="Remind..." />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:baselineAligned="false"
        android:orientation="horizontal" >

        <ListView
            android:id="@+id/listviewTimeInterval"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scrollbars="none" />

         <-- . . . --/>
         <-- more lists of the same kind--/>
         <-- . . .--/>

    </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Lin*_*vel 16

您需要为listview项创建自己的布局,如下所示

例:

textcenter.xml:

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" >
    <TextView
        android:id="@id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

然后,在您的代码中,您必须这样做

ArrayAdapter<String> ad = new ArrayAdapter<String>(this, R.layout.textcenter, R.id.textItem, functions);
listView.setAdapter(ad);
Run Code Online (Sandbox Code Playgroud)

  • ListView本身不控制文本在其中的显示方式吗?我为什么要使用单独的布局? (3认同)

M.P*_*nov 5

如果LisView本身是用android定义的,我发现不可能将项目集中在ListView中:layout_width ="wrap_content"这不会产生,因为这个参数应该只影响ListView的位置而不影响它的元素.

无论如何,将列表的宽度更改为match_parent允许使用(layout_)重力属性将项目居中.