微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin 全屏网格

如何解决Xamarin 全屏网格

我有一张由网格制成的桌子。我是在横向模式下制作的。但我想全屏看。数据总是在变化,所以我总是希望它适合我的屏幕。我怎样才能做到这一点?我尝试使用 grid VerticalOptionsHorizontalOptions FillAndExpand 但没有奏效。我还能做什么?

第一页表:https://prnt.sc/10pbhys

<Grid x:Name="gr2">
                <Grid.RowDeFinitions>
                    <RowDeFinition Height="1.5"/>
                    <RowDeFinition Height="1.2*"/>
                    <RowDeFinition Height="1.5"/>
                </Grid.RowDeFinitions>
                <Grid.ColumnDeFinitions>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="*"/>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="0.5*"/>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="Auto"/>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="Auto"/>
                    <ColumnDeFinition Width="1.5"/>
            </Grid.ColumnDeFinitions>

第二页表:https://prnt.sc/10pbiu2

<Grid x:Name="gr2">
                <Grid.RowDeFinitions>
                    <RowDeFinition Height="1.5"/>
                    <RowDeFinition Height="1.5*"/>
                    <RowDeFinition Height="1.5"/>
                </Grid.RowDeFinitions>
                <Grid.ColumnDeFinitions>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="*"/>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="0.7*"/>
                    <ColumnDeFinition Width="1.5"/>
                    <ColumnDeFinition Width="0.7*"/>
                    <ColumnDeFinition Width="1.5"/>
                </Grid.ColumnDeFinitions>

我的定义必须是这样。 (我为宽度为 1.5 的表格行添加框视图)

解决方法

第一个问题。通过玩网格。您必须知道星号 * 表示屏幕的其余部分。如果您有 4 个星号,则意味着屏幕的其余部分将分成相同大小的 4 个区域(可以是行或列)。 因此从逻辑上讲,它可以通过在 RowDefinitionColumnDefinition 中至少放置一个星号来进行筛选。

为了更好的设计,我建议使用 RowSpan 属性。在某些情况下它会帮助你。仅供参考,网格支持分层系统。所以你可以在其他组件后面有组件。为了实现这一点,您必须使用 RowSpan 以便可以看到分层组件。

请查看此代码 <RowDefinition Height="1.5*"/>。我不知道你为什么在 1.5 后面加上星号。

对于第二个问题。我通过根据所需的网格行和列分配滚动视图来完成这项工作。 示例

<ScrollView Grid.Row="1" Grid.Column="1" Grid.RowSpan="3" Grid.ColumnSpan="4">
    <!-- this area is scrollable -->
</ScrollView>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。