Android 如何在添加列表项时动态设置MvxListView的高度?

Android 如何在添加列表项时动态设置MvxListView的高度?,android,mvvmcross,Android,Mvvmcross,我有一个MvxListView,我正在通过单击“添加”按钮填充它,它可以正常工作。问题是,添加项目时,列表视图的高度需要扩展。我试过了 android:layout\u height=“wrap\u content”,但这似乎不起作用。以下是按钮和列表的代码: <Button android:text="Add One" local:MvxBind="Click AddSomething" /> <Mvx.MvxListView

我有一个MvxListView,我正在通过单击“添加”按钮填充它,它可以正常工作。问题是,添加项目时,列表视图的高度需要扩展。我试过了 android:layout\u height=“wrap\u content”,但这似乎不起作用。以下是按钮和列表的代码:

<Button
        android:text="Add One"
        local:MvxBind="Click AddSomething" />
    <Mvx.MvxListView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        local:MvxItemTemplate="@layout/listitem_template"
        local:MvxBind="ItemsSource ProjectModel.Something" />

我不确定你想做的有多大意义

如果您希望列表增长超过当前屏幕高度,则最初使用非零大小-例如,使用
android:layout\u height=“fill\u parent”
android:layout\u height=“200dp”
最初-列表将增长,并最终随着列表内容变得足够长而导致溢出而滚动

如果您确实希望控件在添加项时更改大小,则可以使用
MvxLinearLayout
,但请注意,如果列表变大,则:

  • 这将不会滚动(您可以使用ScrollView帮助它滚动,但您最初也必须提供一个大小)
  • 这种线性布局效率不高(它不会像ListView那样重用单元格)

如果你真的想要一个动态调整大小的列表视图,那么你可能可以做一些事情,比如从
MvxListView
继承,然后你可以在添加子视图时进行拦截,并使用SetLayoutParams设置新的高度-但我不确定这是否会是一个很好的用户体验。

是的,这就是我们最终要走的道路。