xamarin在阿拉伯语中形成主要详细页面流向

问题描述 投票:0回答:2

我的项目中有一个Master-Detail页面,我将手机语言设置为阿拉伯语,一切正常,主页面在右侧,图标在右侧。但事实是,当手机设置为阿拉伯语时,TitleView(toolbaritems)会向右推一点点。我在没有Master-Detail页面项目的情况下尝试了这个,并且TitleView工作正常并且它位于确切的位置。

使用Master Detail页面:

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                  xmlns:local="clr-namespace:AppXamarin.Pages"
                  x:Class="AppXamarin.Pages.MasterMainPage" NavigationPage.HasNavigationBar="False" NavigationPage.HasBackButton="False" FlowDirection="{x:Static Device.FlowDirection}">
    <MasterDetailPage.Master>
        <local:MasterPage x:Name ="masterPage" FlowDirection="{x:Static Device.FlowDirection}"/>
    </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
        <NavigationPage FlowDirection="{x:Static Device.FlowDirection}">
            <x:Arguments>
                <local:MenuPage></local:MenuPage>
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>
</MasterDetailPage>

MenuPage Xaml文件:

 <NavigationPage.TitleView>
        <Grid Grid.Row="0" Grid.Column="0" HorizontalOptions="EndAndExpand" FlowDirection="{x:Static Device.FlowDirection}">
            <Grid.GestureRecognizers>
                <TapGestureRecognizer Tapped="cart_Clicked"/>
            </Grid.GestureRecognizers>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Image x:Name="BadgeIconImage" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2" Margin="6" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Source="cart">
                <Image.HeightRequest>
                    <OnIdiom Phone="25" Tablet="35"/>
                </Image.HeightRequest>
                <Image.WidthRequest>
                    <OnIdiom Phone="25" Tablet="35"/>
                </Image.WidthRequest>
            </Image>
            <Frame x:Name="BadgeFrame" Grid.Row="0" Grid.Column="1" CornerRadius="12" Padding="10,4" HasShadow="false" OutlineColor="Transparent" BackgroundColor="Transparent">
                <Label x:Name="BadgeTextLabel" FontSize="12" FontAttributes="Bold" HorizontalOptions="EndAndExpand" TextColor="#FF0000"/>
            </Frame>
        </Grid>
    </NavigationPage.TitleView>

结果:

titleview1

没有主细节页面:

<NavigationPage.TitleView>
 <Grid Grid.Row="0" Grid.Column="0" HorizontalOptions="EndAndExpand" FlowDirection="{x:Static Device.FlowDirection}">
            <!--<Grid.GestureRecognizers>
                <TapGestureRecognizer Tapped="cart_Clicked"/>
            </Grid.GestureRecognizers>-->
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Image x:Name="BadgeIconImage" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2" Margin="6" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Source="cart">
                <Image.HeightRequest>
                    <OnIdiom Phone="25" Tablet="35"/>
                </Image.HeightRequest>
                <Image.WidthRequest>
                    <OnIdiom Phone="25" Tablet="35"/>
                </Image.WidthRequest>
            </Image>
            <Frame x:Name="BadgeFrame" Grid.Row="0" Grid.Column="1" CornerRadius="12" Padding="10,4" HasShadow="false" OutlineColor="Transparent" BackgroundColor="Transparent">
                <Label x:Name="BadgeTextLabel" FontSize="12" FontAttributes="Bold" HorizontalOptions="EndAndExpand" TextColor="#FF0000"/>
            </Frame>
        </Grid>
        <!--</Grid>-->
    </NavigationPage.TitleView>

结果:

titleview2

xamarin.forms master-detail titleview
2个回答
0
投票

我的理解告诉我你正在尝试添加工具栏项,所以你不使用titleView:

另一方面,你应该做的是下面的事情

C#:

 this.ToolbarItems.Add(new ToolbarItem()
        {
            Icon = "BadgeIconImage",
            Command = YourCommand,
        });

XAML:

<ContentPage.ToolbarItems>
<ToolbarItem  Order="Primary" Icon="BadgeIconImage" />    
</ContentPage.ToolbarItems>

要了解Xamarin Forms Toolbar,请查看Adam Pedley撰写的this指南

更新

我有一种感觉,你在框架上使用的填充是什么推动你的视图

 Padding="10,4"

检查一下:

<Frame x:Name="BadgeFrame" Grid.Row="0" Grid.Column="1" CornerRadius="12" Padding="10,4" HasShadow="false" OutlineColor="Transparent" BackgroundColor="Transparent">

也可以是角半径。


0
投票
Yes I did it

manifest :

 <application android:label="Sanaap" android:icon="@mipmap/launcher_foreground" android:theme="@style/MainTheme" android:supportsRtl="true">

MainView.xaml

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Sanaap.App.Views.MenuView" 
             FlowDirection="RightToLeft"
             Title="Main">
© www.soinside.com 2019 - 2024. All rights reserved.