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

时间:2014-10-24 00:26:05

标签: android mvvmcross

我有一个MvxListView,我通过单击“添加”按钮填充,该功能正常。问题是当我添加项目时,列表视图的高度需要扩展。我试过设定 android:layout_height =“wrap_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" />

1 个答案:

答案 0 :(得分:2)

我不确定你要做的事情有多大意义......

如果您希望列表增长超出当前屏幕高度,则最初使用非零大小 - 例如最初使用android:layout_height="fill_parent"android:layout_height="200dp" - 然后列表会增长并最终滚动,因为列表内容足够长以导致溢出。

如果你真的想要一个在添加项目时改变大小的控件,那么你可以使用MvxLinearLayout - 但要注意,如果列表变大,那么:

  • 这不会滚动(你可以帮助它使用ScrollView进行滚动,但是你最初也必须提供一个尺寸)
  • 这个LinearLayout效率不高(它不会像ListView一样重复使用单元格。)

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