【问题标题】:Overlapping frame in a grid xamarin forms网格 xamarin 形式中的重叠框架
【发布时间】:2019-09-30 00:03:30
【问题描述】:

我正在使用最新的 xamarin 表单。

我需要在网格中的 2 行之间放置一个框架。

我无法使其与绝对布局或弹性布局一起使用。下面是我对网格的简化尝试

 <Grid ColumnSpacing="1" RowSpacing="1">
    <Grid.RowDefinitions>
        <RowDefinition Height="5*"/>
        <RowDefinition Height="8*"/>
    </Grid.RowDefinitions>
    <Grid BackgroundColor="Red" Grid.Row="0">
 <Label Text="Add some stuff here"></Label>
    </Grid>
    <Grid BackgroundColor="Blue" Grid.Row="1">
        <Frame BackgroundColor="Green" HeightRequest="100" WidthRequest="100" Margin="20,-150,20,20"></Frame>
    </Grid>
</Grid>

这是我不想要的结果

我似乎无法设置框架的高度请求,因为它仍然很大。

在两行之间叠加一个框架的最佳方法是什么?

谢谢

【问题讨论】:

  • 你应该看看 AbsoluteLayout,它非常适合这种设计。或相对布局。

标签: xamarin.forms


【解决方案1】:

对于您的布局,您可以通过以下方式使用 AbsoluteLayout:

  <AbsoluteLayout BackgroundColor="Blue" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" >
        <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="Pink"  AbsoluteLayout.LayoutBounds="1,0,1,0.5" AbsoluteLayout.LayoutFlags="All"  />
        <StackLayout AbsoluteLayout.LayoutBounds="1,1,1,0.5" AbsoluteLayout.LayoutFlags="All" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="Beige"/>
        <Frame  AbsoluteLayout.LayoutBounds="0.5,0.5,0.8,0.5" AbsoluteLayout.LayoutFlags="All"  BackgroundColor="White" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"  CornerRadius="20"   />
  </AbsoluteLayout>

您将从上述实现中获得以下设计。

【讨论】:

  • 您好,感谢您的回答我需要处理 2 个网格,因为它是一个现有页面。我需要真正了解绝对布局以及它是如何工作的,因为我必须将它向上移动一点。你有分钟解释是什么使它上下移动。同时我会重新阅读文档
  • 如果您需要将布局放置在网格的两行内,您只需将其放在最上面一行并将rowspan设置为2。最后根据需要设置AbsoluteLayout高度。至于布局本身,边界是按照 x、y、宽度和高度的顺序设置的。锚点位置可以让您大致了解视图如何在 AbsoluteLayout 中上下移动。你可以在这里阅读:docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/…
  • @SparshaBhattarai 很好的解决方案。但我还有另一个问题。是否也可以将框架组件放在一个列表中,这样背景是固定的,但可以滚动多个框架?
  • 我不确定你的意思是什么,但我认为在这种情况下应该可以使用带有背景颜色的普通列表。或者,内容视图中的列表。如果您更多地解释您的要求,也许我可以更好地解释。
  • @SparshaBhattarai,见这里:page with frames (cards) in a listview
猜你喜欢
  • 1970-01-01
  • 2016-07-03
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多