Xamarin.forms: Можно ли использовать Grid на RelativeLayout? - PullRequest
0 голосов
/ 27 сентября 2018

Это мой третий день в классах Xamarin, и я действительно изо всех сил пытаюсь установить адаптивный фон приложения.Я пытаюсь получить такую ​​структуру:

enter image description here

Я наконец-то добился установки адаптивного фона со свойством AspectFill, которое стоит между <RelativeLayout> тегами,

Но сейчас я не могу разместить ярлык в центре вверху приложения из-за тегов <RelativeLayout>.Ярлык, который я создал для логотипа, стоит на левой стороне.

Я пытался добавить свойство HorizontalOptions, но, к сожалению, это не повлияло.

Вот соответствующие коды xaml:

<RelativeLayout Padding="0">
    <Image Aspect="AspectFill" Source="background.png" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}">
    </Image>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*">
            </RowDefinition>
            <RowDefinition Height="*">
            </RowDefinition>
        </Grid.RowDefinitions>
        <StackLayout Grid.Column="0" Grid.Row="0" HorizontalOptions="">
            <Label Text="MENU">
            </Label>
        </StackLayout>
        <StackLayout Grid.Column="1" Grid.Row="0">
            <Label Text="LOGO" FontSize="28">
            </Label>
        </StackLayout>
    </Grid>
</RelativeLayout>

Моя ошибка не удаласьрезультат:

enter image description here

Есть ли у нас другие варианты для <RelativeLayout>, которые вызывают много проблем с пользовательским интерфейсом?

1 Ответ

0 голосов
/ 27 сентября 2018

Большое спасибо @ Jason

Проблема была исправлена ​​добавлением новой сетки столбцов.Другими словами, всего должно быть 3 столбца.Но я добавил только 2 столбца.

Вот мои обновленные xaml коды:

<RelativeLayout Padding="0">
        <!-- Background -->
        <Image Aspect="AspectFill" Source="background.png" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}">
        </Image>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*">
                </ColumnDefinition>
                <ColumnDefinition Width="*">
                </ColumnDefinition>
                <ColumnDefinition Width="*">
                </ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*">
                </RowDefinition>
                <RowDefinition Height="*">
                </RowDefinition>
            </Grid.RowDefinitions>
            <StackLayout Grid.Column="0" Grid.Row="0" HorizontalOptions="Start">
                <Label Text="MENU">
                </Label>
            </StackLayout>
            <StackLayout Grid.Column="1" Grid.Row="0">
                <Label Text="LOGO" FontSize="28">
                </Label>
            </StackLayout>
            <StackLayout Grid.Column="2" Grid.Row="0">
            </StackLayout>
        </Grid>
    </RelativeLayout>
...