2016-12-05 4 views
1

新しいページに移動してスタックに追加すると、ページの高さでない場合は、そのページの一部と前のページの一部が表示されます(モーダル)。マスター詳細ページを使用するXamarin.Formsアプリケーションがあります。私はXamarin.Forms Nuget 2.3.3.168にアップグレードし、Visual Studio用の最新のXamarinバージョンを使用しています。Xamarin.Formsページが合併しています

新しいページに行くときにナビゲーションスタックもチェックして、すべてが正しいように見えました。私はメニューである1つのマスターページを持っていて、詳細ページにはスタック内のより多くのページを含むナビゲーションページがあり、それらはちょうどお互いの上に部分的に表示されます。

私はAndroidのためにコンストラクタでそれをしなかった場合、それが失敗したため、新しいMasterDetailページへMainPageを設定することで、私のApp()コンストラクタを初期化するために必要なときに私が変更されている唯一の他の事はあります。何か案は?ここで

は私App.csです:

public App() 
     { 
      InitializeComponent(); 

      var masterDetailPage = new MasterDetailPage 
      { 
       Master = new Page() { Title = "Title" }, 
       Detail = new Page(), 
       IsPresented = false 
      }; 

      App.Current.MainPage = masterDetailPage; 
     } 

その後、ユーザーがたりないログインしている場合、私は把握するとき、私はこの機能をマスター詳細ページをリセットします。

public static void SetMainPage(Page newPage) 
     { 
      var rootPage = new NavigationPage(newPage) { BarBackgroundColor = Color.White}; 

      _nav.Initialize(rootPage); 
      _dialogService.Initialize(rootPage); 

      App.Current.MainPage = new MasterDetailPage 
      { 
       Master = new Menu(), 
       Detail = rootPage, 
       BindingContext = new MowMagicMobileViewModelBase(), 
       IsPresented = false 
      }; 
     } 

そこから、ナビゲーションPushAsync()を呼び出して、ページをスタックにポップします。

+0

お役に立てば幸いですか!問題のあるコードを追加できますか? –

+0

@ Mr.Kocakさんがコード – rleffler

+0

を追加しました。ページの背景色を 'Color.Transparent'に設定していますか? – skar

答えて

1

実際には、私はちょうど背景色を設定していなかったのです。私はあなたがどこかから継承されない限り、それが透過的であるページに対して明示的に設定していないのではないかと思いますか?私はその解決策が、私はあなたが私がかなっやった背景を変更したい場合は、これは

Master = new MenuPage();// it is a content page 
Detail = new NavigationPage(new HomePage()); 

を見るためにそれを試しようmasterdetailページがあまりにも.. しかし、私のページである持っている場合は知らない

1

その

public class NavigationPageBase:NavigationPage 
{ 
    public NavigationPageBase (ContentPage c):base(c) 
     { 
      /*if (c.GetType().Equals(typeof(LoginPage))) 
       SetHasNavigationBar(c, false); 
      else 
       SetHasNavigationBar(c, true);*/ 
      SetHasNavigationBar(c, true); 
      BarBackgroundColor = Styles.toolbarColor; 
      BackgroundColor = Styles.bgPageColor; 
     } 
} 

とdetailpageのためにあなたが

ように例のためにそれを使用することができますように
Detail = new NavigationPageBase (new HomePage()); 

そして、あなたのApp()コンストラクタからあなたは、単に

MainPage = new MyMasterDetailPage(); 

を行うことができますが、それは私があなたの質問を得るいけない

関連する問題