如何使用MVVM-Cross在Xamarin.Android中创建Horizo​​ntal MvxListView

时间:2018-03-28 11:30:57

标签: xamarin xamarin.forms xamarin.android

我有需要通过滚动水平显示的项目列表。

我正在使用Mvvm-Crosss,我创建了MvvmListView并添加了MvxItemTemplate,如下所示。

MvxListView:

 <MvxListView
            android:id="@+id/RelatedProductItems"
            app:MvxItemTemplate="@layout/related_product_item"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:nestedScrollingEnabled="true"
   app:layout_constraintTop_toBottomOf="@id/CompleteExperienceLayout" />

related_product_item

<?xml version="1.0" encoding="utf-8"?>  
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"  
xmlns:app="http://schemas.android.com/apk/res-auto"  
android:layout_width="match_parent"  
android:layout_height="wrap_content">  
<ImageView  
    android:id="@+id/ProductImage"  
    android:layout_width="60dp"  
    android:layout_height="60dp"  
    android:scaleType="fitXY"  
    app:MvxBind="Bitmap StringToImage(ImageData)"  
    android:layout_marginTop="5dp"  
    android:layout_marginLeft="5dp"  
    android:paddingBottom="5dp"  
    app:layout_constraintLeft_toLeftOf="parent"  
    app:layout_constraintTop_toTopOf="parent" />  
<TextView  
    android:id="@+id/ItemName"  
    android:layout_width="0dp"  
    android:layout_height="wrap_content"  
    android:ellipsize="end"  
    android:textColor="@color/black"  
    android:textStyle="bold"  
    android:maxLines="2"  
    android:text="Product name"  
    android:layout_marginLeft="5dp"  
    app:MvxBind="Text Name"  
    android:textSize="18sp"  
    app:layout_constraintTop_toTopOf="@id/ProductImage"  
    app:layout_constraintLeft_toRightOf="@id/ProductImage"  
    app:layout_constraintRight_toRightOf="parent" />
 </android.support.constraint.ConstraintLayout>  

我怎样才能实现?

提前致谢。

1 个答案:

答案 0 :(得分:1)

对于水平方式的项目,您需要使用MvxRecyclerView(您必须安装其nuget包)

在您的活动类中访问Recycler View并将其布局管理器设置为水平

        MvxRecyclerView mvxRV = FindViewById<MvxRecyclerView>(Resource.Id.SampleRecyclerView);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.Horizontal, false);
        mvxRV.SetLayoutManager(layoutManager);