【问题标题】:Expandable ListView in Xamarin FormsXamarin 表单中的可扩展 ListView
【发布时间】:2015-08-15 08:18:53
【问题描述】:

我有以下代码使用 Xamarin Forms 显示 ListView:

App.cs

public App ()
{
    MainPage = GetMainPage();
}

public static Page GetMainPage()
{
    return new NavigationPage(new DrilldownListViewByItem());
}

DrilldownListViewByItem:

public class DrilldownListViewByItem : ContentPage
{
    public DrilldownListViewByItem()
    {
        Title = "Drilldown List Using ListView";
        var listView = new ListView();
        listView.ItemsSource = new ListItem[] {
            new ListItem {Title = "First", Description="1st item"},
            new ListItem {Title = "Second", Description="2nd item"},
            new ListItem {Title = "Third", Description="3rd item"}
            };
        listView.ItemTemplate = new DataTemplate(typeof(TextCell));
        listView.ItemTemplate.SetBinding(TextCell.TextProperty, "Title");

        listView.ItemTapped += async (sender, args) =>
        {
            var item = args.Item as ListItem;
            //if (item == null) return;
            //await Navigation.PushAsync(new DetailPage(item));
            //listView.SelectedItem = null;
        };
        Content = listView;
    }
}

ListItem 具有以下属性:

public string Title { get; set; }
public string Description { get; set; }

我想要做的是在我点击其中一个主要项目时显示子项目。这些子项目应该在开始时隐藏,但它们应该在那里,我不想每次在一个项目上标签时都加载它们。任何想法?谢谢!

【问题讨论】:

    标签: c# listview xamarin xamarin.forms


    【解决方案1】:

    尝试根据列表项的点击事件更改您希望出现和消失的项目的可见性。

    在 iOS 上,您可能还必须更改单元格高度(使用 HeightRequest),因为它可能不会自行更改。我猜android会工作得很好。

    希望这会有所帮助。

    【讨论】:

    • 我不想指定固定高度。如何自动获得所需的高度?
    • 您是否尝试过将 HasUnevenRows 设置为 true?它是 ListView 上的一个属性。这可能会有所帮助,但它可能不会自动执行此操作,您将不得不强制执行此操作。至少我最后一次尝试是这样的。
    • 是的,我已经尝试过了。 ViewCell 的大小不会在 WinPhone 和 iPhone 上刷新。对于 WinPhone,当我将设备旋转到横向,然后再次旋转到纵向时,ViewCell 会刷新。对于 iPhone,当 ViewCell 被滚动出屏幕然后又被带回屏幕时,ViewCell 会被刷新。
    • 那么据我所知,您将不得不使用 HeightRequest 来根据新内容正确更新尺寸。
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 2019-05-21
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多