首页 > 解决方案 > 制作响应式框架 Xamarin 表单

问题描述

我试图在 Xamarin Forms 中进行压制。但没有运气。他是我的尝试。

<StackLayout Spacing="0" Padding="20">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="10"/>
            <RowDefinition Height="40"/>
        </Grid.RowDefinitions>

        <Label x:Name="pol1" Text="some text" FontSize="Title" Grid.Row="1"/>
        <Frame BackgroundColor="Gray" Grid.Row="2" HasShadow="True" CornerRadius="10">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="200"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <StackLayout Spacing="0">
                    <Label Text="some text" Grid.Row="2"/>
                    <Label Text="some text" Grid.Row="3"/>
                    <Label Text="some text" Grid.Row="4"/>
                    <Label Text="some text some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="5"/>
                    <Label Text="some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="6"/>
                    <Label Text="some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="6"/>
                </StackLayout>
            </Grid>
        </Frame>
    </Grid>
</StackLayout> 

在此处输入图像描述

但是框架不能缩放到文本。我想让它缩放到文本的末尾。

标签: xamlxamarin.forms

解决方案


StackLayout 的使用和这里的索引是问题所在。在这种情况下,父布局将无法正确测量尺寸。我已经删除了不需要的 StackLayouts 以使其优化。现在可以使用以下代码获得所需的结果。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="10"/>
        <RowDefinition Height="40"/>
    </Grid.RowDefinitions>

    <Label x:Name="pol1" Text="some text" FontSize="Title" Grid.Row="1"/>
    <Frame BackgroundColor="Gray" Grid.Row="2" HasShadow="True" CornerRadius="10">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="20"/>
                <RowDefinition Height="20"/>
                <RowDefinition Height="200"/>
                <RowDefinition Height="20"/>
                <RowDefinition Height="5"/>
                <RowDefinition Height="5"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <StackLayout Spacing="0">
                <Label Text="some text" Grid.Row="2"/>
                <Label Text="some text" Grid.Row="3"/>
                <Label Text="some text" Grid.Row="4"/>
                <Label Text="some text some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="5"/>
                <Label Text="some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="6"/>
                <Label Text="some textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome textsome text" Grid.Row="6"/>
            </StackLayout>
        </Grid>
    </Frame>
</Grid>

我得到了以下输出。我希望它对你有帮助。

响应式框架


推荐阅读