Java 使用GridLayoutManager左对齐视图的RecyclerView

Java 使用GridLayoutManager左对齐视图的RecyclerView,java,android,Java,Android,我正在尝试使用GridLayoutManager向我的应用程序添加RecyclerView。一切正常,唯一的问题是,这些列似乎是左对齐的,而不是中间对齐的。有什么想法吗?提前谢谢 以下是一张显示其外观的图像: 以下是单个项目的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t

我正在尝试使用
GridLayoutManager
向我的应用程序添加
RecyclerView
。一切正常,唯一的问题是,这些列似乎是左对齐的,而不是中间对齐的。有什么想法吗?提前谢谢

以下是一张显示其外观的图像:

以下是单个项目的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="?android:selectableItemBackgroundBorderless"
    android:clickable="true"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iconSpot"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/ic_launcher"
        tools:ignore="MissingPrefix" />

    <TextView
        android:id="@+id/textLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Dummy Text"
        android:textSize="16sp" />

</LinearLayout>

以下是完整的活动布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/totalScreen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignTop="@+id/fab"
    android:layout_gravity="bottom|center"
    android:gravity="bottom|center_vertical">

    <TextView
        android:id="@+id/sheetTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#424242"
        android:padding="12dp"
        android:text="Dummy Title"
        android:textSize="18sp" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignTop="@+id/sheetTitle"
        android:layout_marginEnd="20dp"
        android:layout_marginTop="-28dp"
        android:visibility="gone"
        app:fabSize="normal" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/gridScreen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/sheetTitle"
        android:background="#424242"
        android:gravity="bottom|center"
        android:layout_gravity = "center"
        android:orientation="vertical"
        android:paddingBottom="24dp" />

</RelativeLayout>

仅使用布局文件很难修复,因为项目布局需要膨胀并附加到主布局才能查看结果

所以我决定重新制作它。我修改了你的布局文件

项目布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/colorPrimary"
android:layout_margin="2dp"
android:clickable="true"
android:orientation="vertical">

<ImageView
    android:id="@+id/iconSpot"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_gravity="center_horizontal"
    android:src="@android:drawable/ic_delete"
    tools:ignore="MissingPrefix" />

<TextView
    android:id="@+id/textLabel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Dummy Text"
    android:textSize="16sp" />

</LinearLayout>
}

对象实体类

public class ItemObject {

private int image;
private String title;

public ItemObject(int image, String title) {
    this.image = image;
    this.title = title;
}

public int getImage() {
    return image;
}

public void setImage(int image) {
    this.image = image;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}
}
结果如下。试试看它是否适合你


仅使用布局文件很难修复,因为项目布局需要膨胀并附加到主布局才能查看结果

所以我决定重新制作它。我修改了你的布局文件

项目布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/colorPrimary"
android:layout_margin="2dp"
android:clickable="true"
android:orientation="vertical">

<ImageView
    android:id="@+id/iconSpot"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_gravity="center_horizontal"
    android:src="@android:drawable/ic_delete"
    tools:ignore="MissingPrefix" />

<TextView
    android:id="@+id/textLabel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Dummy Text"
    android:textSize="16sp" />

</LinearLayout>
}

对象实体类

public class ItemObject {

private int image;
private String title;

public ItemObject(int image, String title) {
    this.image = image;
    this.title = title;
}

public int getImage() {
    return image;
}

public void setImage(int image) {
    this.image = image;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}
}
结果如下。试试看它是否适合你


好的!我明白了,结果是我需要将项目布局宽度设置为match\u parent,而不是wrap\u内容。所以看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_margin="10dp"
    android:background="?android:selectableItemBackgroundBorderless"
    android:clickable="true"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iconSpot"
        android:layout_width="44dp"
        android:layout_height="44dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/ic_launcher"
        tools:ignore="MissingPrefix" />

    <TextView
        android:id="@+id/textLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Dummy Text"
        android:textSize="16sp" />

</LinearLayout>

好的!我明白了,结果是我需要将项目布局宽度设置为match\u parent,而不是wrap\u内容。所以看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_margin="10dp"
    android:background="?android:selectableItemBackgroundBorderless"
    android:clickable="true"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iconSpot"
        android:layout_width="44dp"
        android:layout_height="44dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/ic_launcher"
        tools:ignore="MissingPrefix" />

    <TextView
        android:id="@+id/textLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Dummy Text"
        android:textSize="16sp" />

</LinearLayout>


您可以显示布局文件alsoOk,刚刚更新了OP。希望帮助您可以显示布局文件alsoOk,刚刚更新了OP。希望帮助W!首先,我要感谢您为此所做的工作!希望我们能把它弄清楚,所以有一些间距,但不幸的是,项目仍然是左对齐的(虽然有左边框),但它仍然不像你的截图。哇!首先,我要感谢您为此所做的工作!希望我们能把它弄清楚,所以有一些间距,但不幸的是,这些项目仍然是左对齐的(虽然有左边距),但它仍然不能像你的截图那样工作。
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_margin="10dp"
    android:background="?android:selectableItemBackgroundBorderless"
    android:clickable="true"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iconSpot"
        android:layout_width="44dp"
        android:layout_height="44dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/ic_launcher"
        tools:ignore="MissingPrefix" />

    <TextView
        android:id="@+id/textLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Dummy Text"
        android:textSize="16sp" />

</LinearLayout>