MvxGridView项目是垂直重叠的

时间:2016-03-16 08:23:33

标签: android gridview xamarin mvvmcross

所以我成功创建了一个带有各自图像的MvxGridView,其中一些有图像,有些没有。问题是当显示视图时,出现垂直重叠。

这是网格布局:

    <Mvx.MvxGridView
        android:layout_marginTop="5dp"
        android:id="@+id/cav_gridArticulos"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:numColumns="3"
        android:verticalSpacing="4dp"
        android:horizontalSpacing="4dp"
        android:stretchMode="columnWidth"
        android:fastScrollEnabled="true"
        local:MvxBind="ItemsSource Articulos"
        local:MvxItemTemplate="@layout/catalogoarticulos_itemst" />

ItemTemplate:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <Mvx.MvxImageView
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/edit_text_border"
        android:layout_gravity="center"
        local:MvxBind="ImageUrl UrlImagen"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:scaleType="fitXY" />
    <LinearLayout
        android:layout_weight="4"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nombre"
            android:layout_centerInParent="true"
            local:MvxBind="Text IdGrupoProducto"
            android:layout_gravity="center"
            android:layout_marginTop="5dp" />
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:background="@android:color/transparent"
            android:layout_centerInParent="true"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:singleLine="false"
            android:focusable="false"
            android:layout_gravity="center"
            android:inputType="textMultiLine|textNoSuggestions"
            android:scrollHorizontally="true"
            local:MvxBind="Text Descripcion" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            local:MvxBind="Text PrecioUnitario"
            android:textStyle="bold"
            android:layout_gravity="center" />
    </LinearLayout>
</LinearLayout>

为什么会这样?

This is how it looks

enter image description here

1 个答案:

答案 0 :(得分:0)

因此,简单的解决方法是明确设置布局的高度。对于不同的宽高比图像,我使用了android:scaleType =&#34; centerInside&#34;。唯一的问题是如果我使用其他设备并且屏幕尺寸发生变化。但它现在工作正常。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="350dp"
    android:orientation="vertical"
        android:background="@drawable/edit_text_border">
    <Mvx.MvxImageView
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxHeight="180dp"
        android:layout_gravity="center"
        local:MvxBind="ImageUrl UrlImagen; DefaultImagePath DefaultImage"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:scaleType="centerInside"
        android:adjustViewBounds="true" />