sga*_*dev 43 xaml xamarin xamarin.forms
有没有办法创建一个垂直堆栈布局,其中一个按钮占用父项的30%,一个文本输入占用父项的70%?像这样的东西:
<StackLayout Orientation="Vertical">
<Entry Height="70%"></Entry>
<Button Height="30%">Click me</Button>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.到目前为止,只有解决方案是创建一个完整的Grid项目并使用它.没有其他解决方案吗?
Ada*_*ley 68
在这种情况下,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>
Run Code Online (Sandbox Code Playgroud)
另外,作为旁注,只有网格可以扩展到其父元素的整个宽度或高度.StackLayout通过他们孩子的总和来确定他们的最大大小,除非他们在Grid中并且你放了HorizontalOptions="Fill"和VerticalOptions="Fill".
您可以实现此目的的唯一方法是从操作系统获取DeviceHeight和Width并手动设置元素的高度.一种复杂且通常有缺陷的方法,我不建议这样做.
| 归档时间: |
|
| 查看次数: |
72202 次 |
| 最近记录: |