【问题标题】:Content overlapping in grid view android网格视图android中的内容重叠
【发布时间】:2020-12-29 05:09:33
【问题描述】:

我正在创建一个要在网格视图中显示数据的 android 应用程序。我的 web 服务工作正常,数据在网格视图中显示成功。现在我想要的是,当数据填充到第二行时,它会在第一行重叠。如何解决以下问题?

我的活动中的 GridView。

<GridView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:divider="@color/list_divider"
        android:numColumns="3"
        android:layout_marginTop="12dp"
        android:scrollbars="none"
        android:layout_marginBottom="12dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:verticalSpacing="15dp"
        android:horizontalSpacing="15dp"
        android:dividerHeight="1dp"/>

自定义适配器布局代码如下。

<?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="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:background="@drawable/layout_bg"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="10dp">

    <androidx.cardview.widget.CardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="10dp"
        app:cardElevation="0dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="150dp">

            <!-- Thumbnail Image -->
            <com.android.volley.toolbox.NetworkImageView
                android:id="@+id/thumbnail"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_alignParentLeft="true"
                android:foregroundGravity="center"
                android:scaleType="fitXY"
                android:src="@drawable/demo_image" />

            <ImageView android:id="@+id/imgYoutube"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/youtube"
                android:visibility="gone"
                android:layout_centerInParent="true"></ImageView>

        </RelativeLayout>

    </androidx.cardview.widget.CardView>

    <!-- Movie Title -->
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_marginTop="5dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="Moin Khan"
        android:textColor="#000000"
        android:textSize="16sp"
        android:textStyle="bold" />

    <!-- Rating -->
    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:paddingBottom="5dp"
        android:text="Complete course"
        android:textSize="12sp" />

</LinearLayout>

【问题讨论】:

  • 你为什么还在使用GridView?它现在是很长一段时间的遗留小部件。请使用RecyclerView

标签: android json gridview android-cardview


【解决方案1】:

我认为您需要使用 RecyclerView 而不是 GridView 来实现您的目的,因为您的项目高度不等,这通常会导致 gridview 出现问题。 为您的案例使用这些标签,

recyclerView.setHasFixedSize(false);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多