我有一个RecyclerView,我使用三个不同的LayoutManagers来设置三种类型的视图。小项目,网格项目和大项目:
要显示的第一个项目是smallitem,然后如果用户点击工具栏的按钮,布局会转到网格布局,最后如果再次点击,它会转到大项目(我有问题) )。
在bigitem(使用LinearLayoutManager)中,我在RecyclerView的itens之间获得了一个奇怪的空白区域。 并且所有的空间高度都不相等。我试图将布局参数设置为视图,但它没有用。
这就是我的BigItem布局:
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
android:id="@+id/message_processo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="0dp"
android:background="#fff"
app:cardCornerRadius="5dp"
android:elevation="2dp"
android:orientation="vertical"
app:cardBackgroundColor="@color/white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<br.com.isilist.android.view.widget.SquareImageView
android:id="@+id/iv_product_image"
android:src="@drawable/ic_launcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"/>
<View
android:layout_below="@+id/iv_product_image"
android:layout_above="@+id/container_bottom"
android:id="@+id/middle_separator"
android:layout_width="match_parent"
android:layout_height="1px"/>
<RelativeLayout
android:layout_below="@+id/iv_product_image"
android:id="@+id/container_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:paddingLeft="5dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_name"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:textSize="16sp"
android:text="Teste"
android:layout_marginBottom="@dimen/pad_5dp"
android:textColor="@color/dark_gray"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_unit_price"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:textSize="13sp"
android:layout_marginBottom="@dimen/pad_5dp"
android:textColor="#888"
android:text="Teste"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rl_bottom_layout_list_product">
<LinearLayout
android:id="@+id/ll_info_quantity_price"
android:layout_centerVertical="true"
android:orientation="vertical"
android:layout_marginBottom="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_marginLeft="8dp"
android:layout_marginStart="@dimen/pad_8dp"
android:layout_marginRight="@dimen/pad_8dp"
android:layout_marginEnd="@dimen/pad_8dp"
android:background="#888"
android:layout_width="match_parent"
android:layout_height="1px"/>
<TextView
android:id="@+id/tv_item_quantity"
android:textSize="13sp"
android:textColor="#888"
android:text="Quantidade: 12"
android:layout_marginTop="@dimen/pad_4dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textSize="13sp"
android:textColor="@color/primary_color"
android:text="R$"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_item_total_price"
android:textSize="@dimen/txt_18sp"
android:textColor="@color/primary_color"
android:text="148.99"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_marginBottom="-30dp"
android:layout_alignBottom="@+id/middle_separator"
android:id="@+id/ll_add_remove_item"
android:orientation="horizontal"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_toLeftOf="@+id/container_add_quantity"
android:layout_toStartOf="@+id/container_add_quantity"
android:layout_margin="@dimen/pad_16dp"
android:id="@+id/container_deduct_quantity"
android:background="@drawable/circle_background_orange_white_stroke"
android:layout_width="@dimen/pad_35dp"
android:layout_height="@dimen/pad_35dp">
<ImageView
android:src="@drawable/ic_minus_white_48dp"
android:layout_centerInParent="true"
android:layout_width="@dimen/pad_30dp"
android:layout_height="@dimen/pad_30dp" />
</RelativeLayout>
<RelativeLayout
android:layout_marginBottom="-30dp"
android:id="@+id/container_add_quantity"
android:layout_margin="@dimen/pad_16dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:background="@drawable/circle_background_orange_white_stroke"
android:layout_width="@dimen/pad_35dp"
android:layout_height="@dimen/pad_35dp">
<ImageView
android:src="@drawable/ic_plus_white_48dp"
android:layout_centerInParent="true"
android:layout_width="@dimen/pad_30dp"
android:layout_height="@dimen/pad_30dp" />
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_badge"
android:layout_marginBottom="-15dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="@dimen/pad_16dp"
android:layout_alignBottom="@+id/middle_separator"
android:background="@drawable/circle_background_red"
android:layout_width="@dimen/pad_30dp"
android:layout_height="@dimen/pad_30dp">
<ImageView
android:id="@+id/iv_icon_badge_product"
android:src="@drawable/ic_sale_white_48dp"
android:layout_centerInParent="true"
android:layout_width="@dimen/pad_25dp"
android:layout_height="@dimen/pad_25dp" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
修改
这是奇怪空间的印刷品
修改
如果我使用的图像使卡片填满整个屏幕,那么空间就消失了。 我意识到RecyclerView将项目和屏幕底部之间的空间加倍。 例如:如果一部手机的高度为500dp且我的视野高度为300dp ......空白区域将为400dp。