首页 文章

将视图与RelativeLayout XamarinForms中的底部和顶部对齐

提问于
浏览
2

我想在Xamarin.Forms中将一个图像对齐到顶部,将一个图像对齐到 RelativeLayout 的底部 . 我怎样才能做到这一点?

<RelativeLayout>
            <Image 
                Aspect="Fill"
                Source = "header_login.png"></Image>
            <Image 
                Aspect="Fill"
                Source = "login_footer_2.png"
                RelativeLayout.XConstraint=
                 "{ConstraintExpression Type=RelativeToParent,
                                        Property=Width,
                                        Factor=0}"
                RelativeLayout.YConstraint=
                 "{ConstraintExpression Type=RelativeToParent,
                                        Property=Height,
                                        Factor=1}" ></Image>
</RelativeLayout>

2 回答

  • 4

    我发现有些东西对你有用 . 即使不是通过使用RelativeLayout来完成,您仍然可以使用StackLayout获得所需的内容 .

    这个想法是:

    <StackLayout>
      <StackLayout  VerticalOptions="Start">
      <Image/> <!--top image-->
      </StackLayout>
    
      <StackLayout VerticalOptions="CenterAndExpand">
        <!-- middle controls -->
      </StackLayout>
    
      <StackLayout Orientation="Horizontal" VerticalOptions="End">
        <Image/> <!--bottom image-->
      </StackLayout>
    </StackLayout>
    

    通过扩展中间StackLayout,将剩余的空间分别推到顶部和底部 . 有一个固定的底部对我来说非常有用 . https://stackoverflow.com/a/30143144/3324840

  • 0

    相对布局提供了一种非常简单的方法 .

    您应该使用约束类型“相对于父”,并使用因子来定位元素 .

    相对布局可以包括使用因子定位时的控件大小 . 这意味着如果你将因子设为0,图像的顶部将位于容器的顶部 .

    如果您将系数设置为1,则图像的 bottom 将位于容器的底部 .

    同样,系数0.5将使图像的中心位于容器的中心

    因此,默认情况下,相对布局会在计算因子位置时处理您的控制尺寸 .

    您可以在官方文档中的相关容器上找到更多信息和样本 . 示例项目中还包含代码示例以帮助您解决问题 .

相关问题