GridView项高度与其他高度不匹配

时间:2018-05-15 06:22:17

标签: java android xml android-gridview datagridviewcolumn

我正在使用网格视图。它在某些设备中显示问题。网格视图的一个项目的高度看起来比其他项目短。

enter image description here

在某些设备中看起来像这样,有些设备看起来很好。

布局:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:background="@android:color/white"
        android:layout_height="match_parent">

    </RelativeLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">
<LinearLayout android:orientation="vertical"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.admin.fueloneApp.MainDriver"
    tools:showIn="@layout/app_bar_main"
    android:weightSum="8">


    <TextView
        android:id="@+id/main_welcome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/dimen_20dp"
        android:text="@string/welcome"
        android:textColor="@color/colorPrimary"
        android:textStyle="bold" />

    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridviewMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="@dimen/dimen_40dp"
        android:layout_marginLeft="@dimen/dimen_40dp"
        android:layout_marginRight="@dimen/dimen_40dp"
        android:columnWidth="80dp"
        android:horizontalSpacing="@dimen/dimen_10dp"
        android:numColumns="2"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp"></GridView>

</LinearLayout>


    </ScrollView>

    <TextView
        android:id="@+id/textView20"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="false"
        android:text="For Any Queries Related To Mobile App Click On Service Request"
        android:textAlignment="center" />

</RelativeLayout>

项目布局

编辑:添加了网格视图的项目布局。

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/single_grid"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary1"
    android:orientation="vertical">
   <ImageView
       android:id="@+id/gris_img"
       android:layout_gravity="center"
       android:layout_width="80dp"
       android:scaleType="fitXY"
       android:layout_height="100dp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/grid_cat"
            android:textSize="15sp"
            android:textColor="@color/divider_color"
            android:gravity="center"/>

</LinearLayout>

如何管理每件商品的高度?这是什么解决方案?请帮忙。谢谢......

3 个答案:

答案 0 :(得分:0)

Gridview倾向于使用最高元素调整所有元素的高度。因此,您正在看到这种行为。您可以使用StaggeredGridView。

答案 1 :(得分:0)

我认为您的网格布局单元格高度为 wrap_content 。这个问题同样发生在我身上。将您的布​​局高度 wrap_content 更改为 match_parent

 android:layout_height="match_parent"

要获得更好的解决方案,请在此处更新网格视图项布局单元格。

答案 2 :(得分:0)

添加Textview属性:

android:maxLines="1"    
android:singleLine="true"

如果文字不可见单行,则需要将textview更改为autosizing-textview

enter link description here