簡體   English   中英

Xamarin Forms StackLayout:如何將子項的寬度/高度設置為百分比

[英]Xamarin Forms StackLayout: How to set width / height of children to percentages

有沒有辦法創建一個垂直堆棧布局,其中一個按鈕占用父項的30%,一個文本輸入占用父項的70%? 像這樣的東西:

<StackLayout Orientation="Vertical">
    <Entry Height="70%"></Entry>
    <Button Height="30%">Click me</Button>
</StackLayout>

但這不起作用。 到目前為止,只有解決方案是創建一個完整的Grid項目並使用它。 沒有其他解決方案嗎?

在這種情況下,StackLayout在高度不同的情況下表現不佳。 Xamarin Forms引擎在這一點上不如WPF引擎那么圓潤。 基本上你必須去

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="7*" />
        <RowDefinition Height="3*" />
    </Grid.RowDefinitions>
    <Entry Grid.Row="0" VerticalOptions="Fill"></Entry>
    <Button Grid.Row="1" VerticalOptions="Fill">Click me</Button>
</Grid>

另外,作為旁注,只有網格可以擴展到其父元素的整個寬度或高度。 StackLayout通過子節點的總和確定它們的最大大小,除非它們在Grid中並且你放置HorizontalOptions="Fill"VerticalOptions="Fill"

您可以實現此目的的唯一方法是從操作系統獲取DeviceHeight和Width並手動設置元素的高度。 一種復雜且通常有缺陷的方法,我不建議這樣做。

雖然您可以使用網格執行此操作,但AbsoluteLayout的布局更合適

您可以使用以下方法設置位置比例:AbsoluteLayout.LayoutBounds =“。5,1,.5,.1”

暫無
暫無

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

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