【发布时间】:2018-12-29 13:56:02
【问题描述】:
我在一个 Xamarin.Forms 应用程序上工作,该应用程序使用:
- 包含背景颜色和一些项目(头像、文本)的标题
- 包含背景图像和一些按钮的页脚
- 在 2 个标题之间,我想显示另一个按钮,它在 2 个容器之间很好地对齐
我能够大致实现这一点,但并不完美:这在 iPhone 6 上运行良好,但在 iPhone X 上却不完全。
XAML 代码如下所示:
<RelativeLayout>
<Image Source="background.png"
Opacity="0.25" Aspect="AspectFill"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Width}"
RelativeLayout.HeightConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Height}"/>
<Grid x:Name="Header"
BackgroundColor="{StaticResource BlueColor}"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Width}"
RelativeLayout.HeightConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.55, Constant=0}">
<StackLayout ... />
</Grid>
<Grid RelativeLayout.YConstraint=
"{ConstraintExpression Type=RelativeToView, ElementName=Header, Property=Height, Factor=0.90}"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Width}"
RelativeLayout.HeightConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.45, Constant=0}}">
<StackLayout Spacing="5" Padding="25,10,25,10"
VerticalOptions="StartAndExpand"
RelativeLayout.WidthConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Width}"
RelativeLayout.HeightConstraint=
"{ConstraintExpression Type=RelativeToParent, Property=Height}">
<Button Style="{DynamicResource CustomButton}"
BackgroundColor="{StaticResource OrangeColor}"
VerticalOptions="End" HorizontalOptions="FillAndExpand"
Margin="30,0,30,0"/>
//...
</StackLayout>
</Grid>
</RelativeLayout>
主容器是RelativeLayout。我将Image 设置为背景
此布局的图像。然后我有一个 StackLayout 作为包含头像和用户详细信息的标题,还有一个包含按钮的 StackLayout。
这是一个好方法吗?或者有没有更好的方法将橙色按钮放在两个布局之间?
【问题讨论】:
标签: user-interface xamarin layout xamarin.forms vertical-alignment