【问题标题】:Set Listview height based on the number of items in Xamarin Forms根据 Xamarin Forms 中的项目数设置 Listview 高度
【发布时间】:2019-02-14 01:52:30
【问题描述】:

我有一个 ListView 显示建议。如何根据项目数设置列表视图的Height

最多10个,最少1个。

我已经根据结果数量添加了一个高度请求代码仍然不起作用

我的 XAML:

<Label Text="RETAILER NAME" StyleClass="lbl-fieldform"/>
                <Entry x:Name="NameSearch" StyleClass="fieldForm" Focused="NameSearch_Focused" Unfocused="NameSearch_Unfocused" TextChanged="NameSearch_TextChanged"/>
                <ListView x:Name="lstName" IsVisible="False" HeightRequest="50" ItemTapped="lstName_ItemTapped">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout StyleClass="lstContainer">
                                    <Label StyleClass="lstName" Text="{Binding FileAs}"/>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
                <Label Text="RETAILER CODE" StyleClass="lbl-fieldform"/>
                <Picker Title="Select Retailer Code" x:Name="codePicker" ItemsSource="{Binding RetailerCode}" ItemDisplayBinding="{Binding RetailerCode}" StyleClass="fieldForm" IsEnabled="False"/>
                <Label Text="STREET" StyleClass="lbl-fieldform"/>
                <Entry IsEnabled="false" StyleClass="fieldForm" x:Name="entStreet"/>

我的身高公式:

var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();

string sql = "SELECT * FROM tblContacts WHERE FileAs LIKE '%" + keyword + "%' ORDER BY FileAs LIMIT 10";
var getUser = conn.QueryAsync<ContactsTable>(sql);
var resultCount = getUser.Result.Count;

if (resultCount > 0)
{
    var result = getUser.Result;
    lstName.HeightRequest = (resultCount * 50) + (10 * resultCount);
    lstName.ItemsSource = result;
}
else
{
    lstName.IsVisible = false;
}

【问题讨论】:

  • 我不认为我只需要关于如何根据项目数设置列表视图高度的公式

标签: listview xamarin xamarin.forms


【解决方案1】:

在您的代码中删除 + (10 * resultCount);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多