2017-12-08 19 views
0

奇妙なことに、画面の表示がMainPageのみでプッシュダウンされたあと、画面はそれに応じて画面に収まります。私は、ページを削除して再追加しようとしましたが、それも動作しませんでした。誰もがこれを引き起こす可能性があり、それを修正する方法を知っていますか?ここで 画面の表示が押し下げられるxamarin.forms android

は、それは次のようになります。上部の黒いスペースが Image

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage 
    x:Class="LoyaltyWorx.Views.MainPage" 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:LoyaltyWorx.Views.Converters" 
    xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" 
    prism:ViewModelLocator.AutowireViewModel="True" 
    > 
    <ContentPage.Resources> 
     <ResourceDictionary> 
      <local:InvertBooleanConverter x:Key="InvertBooleanConverter" /> 
     </ResourceDictionary> 
    </ContentPage.Resources> 
    <Grid> 
     <Image Source="bk3.jpg" Aspect="AspectFill"/> 
     <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
     <StackLayout Orientation="Horizontal" VerticalOptions="Start"> 
      <!-- top controls --> 
     </StackLayout> 
     <StackLayout VerticalOptions="CenterAndExpand"> 
      <!-- middle controls --> 
      <BoxView HeightRequest="430"></BoxView> 
      <Button Text="Continue with Facebook" x:Name="LoginBtn" BackgroundColor="#4867aa" TextColor="White" FontFamily="Klavika" HorizontalOptions="CenterAndExpand" Clicked="LoginBtn_Clicked" /> 
      <Button Text="Continue with Google " Command="{Binding GoogleLoginCommand}" BackgroundColor="#d34836" TextColor="White" FontFamily="Klavika" HorizontalOptions="CenterAndExpand"/> 
     </StackLayout> 
     <StackLayout Orientation="Horizontal" VerticalOptions="End" HorizontalOptions="Center"> 
      <!-- bottom controls --> 
      <Frame OutlineColor="White" HorizontalOptions="StartAndExpand"> 
       <StackLayout Orientation="Horizontal" VerticalOptions="End" HorizontalOptions="Center"> 
        <!-- bottom controls --> 
        <StackLayout Grid.Row="1" Orientation="Horizontal" Spacing="0"> 
         <Label 
           Text="Terms and conditions" 
           FontSize="13" 
          TextColor="#71757a" 
          FontAttributes="Bold" 
          x:Name="LblTerms"/> 
         <Label 
          Text=" and" 
          FontSize="13" 
          TextColor="#71757a" 
          /> 

         <Label 
           Text=" privacy policy" 
          FontSize="13" 
          TextColor="#71757a" 
          FontAttributes="Bold" 
          x:Name="LblPrivacy"/> 
        </StackLayout> 

       </StackLayout> 
      </Frame> 
     </StackLayout> 
    </StackLayout> 
    </Grid> 
</ContentPage> 

App.cs

public partial class App : PrismApplication 
    { 

     public App(IPlatformInitializer initializer = null) : base(initializer) { } 


     protected override void OnInitialized() 
     { 
      InitializeComponent(); 
      SetMainPage(); 
      NavigationService.NavigateAsync("NavigationPage/MainPage?title=Hello%20from%20Xamarin.Forms"); 
     } 

     protected override void RegisterTypes() 
     { 
      Container.RegisterTypeForNavigation<NavigationPage>(); 
      Container.RegisterTypeForNavigation<MainPage>(); 
     } 

     private void SetMainPage() 
     { 
      if (!string.IsNullOrEmpty(Helpers.Settings.Usertoken)) 
      { 
       Application.Current.MainPage = (new Profile()); 
      } 
      else 
      { 
       MainPage = new NavigationPage(new MainPage()) 
       { BarBackgroundColor = Color.FromHex("#393b3d") }; 

      } 
     } 

     public async static Task NavigateToSMS() 
     { 
      await Application.Current.MainPage.Navigation.PushAsync(new SMS()); 
     } 

     public static void NavigateToProfile() 
     { 
      Application.Current.MainPage = (new InvalidLogin()); 
     } 
     public static void NavigateToVerified() 
     { 
      Application.Current.MainPage = (new Profile()); 
     } 

     protected override void OnStart() 
     { 
      // Handle when your app starts 
     } 

     protected override void OnSleep() 
     { 
      // Handle when your app sleeps 
     } 

     protected override void OnResume() 
     { 
      // Handle when your app resumes 
     } 
    } 
+0

まず、

var mainPage = new MainPage(); MainPage = new NavigationPage(mainPage); NavigationPage.SetHasNavigationBar(mainPage, false); 

あなたのCSコードにしたり、MainPage.xaml

CSでそれをオフにすることができます。あなたはその上にイメージをオーバーレイしたいが、そのためにはグリッドの周りのabsolutelayoutを使用し、絶対的なレイアウトの途中でイメージを設定する方がよい。これはパフォーマンスに影響します。あなたの問題については、あなたのグリッド上でVerticalOptions = "StartAndExpand"を試してください。 – batmaci

+0

xamlのレイアウトとは何の関係もないと思っています。削除して、新しいxamlページを追加しました。私のapp.csの何かが問題を引き起こしていると仮定しています –

+0

最近xamarinフォームパッケージをアップグレードした場合、最新のフォームバージョンのいずれかと同様の問題がありました。 – batmaci

答えて

1

MainPage.xamlをすべきではありませんあなたはMainPageラッパーを持っていますdはNavigationPageで、デフォルトでNavigationBarが表示されます。あなたは、グリッドの行を使用する代わりに、グリッド内stacklayout使用しない理由XAML

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage 
    x:Class="LoyaltyWorx.Views.MainPage" 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:LoyaltyWorx.Views.Converters" 
    xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" 
    prism:ViewModelLocator.AutowireViewModel="True" 
    NavigationPage.HasNavigationBar="False"> 
関連する問題