在中心设置ListView的文本 - android

R4j*_*R4j 2 android android-layout

我尝试在布局的中心设置ListView的文本.我使用LinearLayout并设置gravity = center,但它始终显示在左侧

这是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:gravity="center">
        <ListView android:id="@+id/lv_function" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:gravity="center" />
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我使用:

String[] functions = { "Login", "Register", "Setting", "About", "Exit" };
lvMenu = (ListView) findViewById(R.id.lv_function);
ArrayAdapter<String> arr = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, functions);
// set adapter for ListView.
lvMenu.setAdapter(arr);
Run Code Online (Sandbox Code Playgroud)

结果如下: 结果

你有什么主意吗?请帮帮我,谢谢!

Sha*_*aun 13

您必须为列表视图项创建自己的布局.像这样的东西

<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)

然后,在您的代码中,您将不得不这样做

 new ArrayAdapter<String>(this, R.layout.yourRowItemLayoutHere, R.id.textItem, functions);
Run Code Online (Sandbox Code Playgroud)

希望有所帮助