簡體   English   中英

Xamarin.Forms布局問題

[英]Xamarin.Forms layout issue

我試圖在Xamarin.Forms中生成一個簡單的表單,該表單將顯示具有自定義頁眉(允許輸入數據)和自定義頁腳(包含“取消” /“繼續”按鈕)的ListView。 但是,我無法讓ListView垂直填充表單(無論列表的長度如何,我都希望在表單底部使用“取消” /“繼續”按鈕。

我要去哪里錯了? 我已經對ListView嘗試了VerticalOptions的幾乎每種組合,但是我總是以直接位於“ OK”按鈕下方的“ Cancel” /“ Continue”按鈕結束。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="MyCompany.Views.MyPage"
                         xmlns="http://xamarin.com/schemas/2014/forms"
                         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                         Title="{Binding Path=Title}">

    <ListView Margin="15" VerticalOptions="FillAndExpand">

        <ListView.HeaderTemplate>
            <DataTemplate>

                <StackLayout VerticalOptions="Start">
                    <Label HorizontalTextAlignment="Center" Text="Type something" />
                    <Entry />
                    <Button HorizontalOptions="Center" Text="Ok" />
                </StackLayout>

            </DataTemplate>
        </ListView.HeaderTemplate>

        <ListView.FooterTemplate>
            <DataTemplate>

                <Grid VerticalOptions="End">

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="2*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="2*" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>

                    <Button Grid.Column="1" Text="Cancel" />
                    <Button Grid.Column="3" Text="Complete" />

                </Grid>

            </DataTemplate>
        </ListView.FooterTemplate>

    </ListView>

</ContentPage>

作為記錄,該應用程序正在(當前)在Android上運行,盡管我認為這不會有任何不同。

我不能完全使用頁眉和頁腳來實現它。 另外,您也可以將其包裝在Grid中,如下所示:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <StackLayout Grid.Row="0" VerticalOptions="Start">
        <Label HorizontalTextAlignment="Center" Text="Type something" />
        <Entry />
        <Button HorizontalOptions="Center" Text="Ok" />
    </StackLayout>
    <ListView Grid.Row="1" ItemsSource="{Binding .}" Margin="15" VerticalOptions="FillAndExpand" />
    <Grid Grid.Row="2" VerticalOptions="End" HeightRequest="40">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Button Grid.Column="1" Text="Cancel" />
        <Button Grid.Column="3" Text="Complete" />
    </Grid>
</Grid>

更新:我已經注意到與行為ListView是,它使得頁腳中的最后一個項目之后直接ListView 因此,如果您的ListView只有4個項目,它將標頭直接放在它之后。 嘗試為頁腳和ListView提供背景顏色,您可能會看到類似以下的內容:

在此處輸入圖片說明

我認為如果不遵循我建議的網格路線,就無法改變這種行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM