我正在使用Xamarin和MVVM Cross开发Android应用。而且我正在尝试将两个标签列表加载到MvxGridView。
Control_List.axml
<?xml version="1.0" encoding="utf-8"?>
<MvxLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<MvxGridView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numColumns="auto_fit"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:stretchMode="columnWidth"
android:choiceMode="none"
local:MvxBind="ItemsSource List"
local:MvxItemTemplate="@layout/list_item" />
</MvxLinearLayout>
还有List_item.axml
<?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:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:gravity="center_vertical">
<TextView
android:background="@drawable/roundedshape_calendar_blurb"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16dp"
android:textColor="@color/white"
android:singleLine="false"
local:MvxBind="Text Format('{0}: {1}', Key, Value)" />
<View
android:layout_width="1dp"
android:layout_height="36dp"
local:MvxBind="BackgroundColor DarkerThemeColor" />
</LinearLayout>
视图如下:
我的问题是:为什么只显示一行?
非常感谢!
答案 0 :(得分:0)
我为此挣扎了一段时间。
通过动态更改网格高度,我找到了一个简单的解决方案:
var myGrid = _rootView.FindViewById<MvxGridView>(Resource.Id.grid);
ViewGroup.LayoutParams layoutParams = myGrid .LayoutParameters;
layoutParams.Height = (ViewModel.Items.Count / myGrid .NumColumns) * _gridRowHeight;
myGrid.LayoutParameters = layoutParams;