2017-09-25 12 views
1

この問題が発生し、解決する方法がわかりません。 基本的には、Navigation.PushAsync(tabbedPage)から呼び出すときに、TabLayoutのmainTitleの色を変更したいと思います。簡単ですが、そうではありません。 そのトップバーのプロパティを変更することはわかりません。 "BarTextColorProperty"という名前のNavigationPageクラスに、プロパティがあります。これで何ができますか?TabbedPage MainTitleの色を、Navigation.PushAsync(tabbedPage)で開いたときに変更します。

私は、同じサンプルをテストしたが、別の方法で... Navigation.PushModalAsync(tabbedPage)、この時間は、モーダルページでは、と働いた:)

をしかし、私は本当にこの仕事を必要としていましたNavigation.PushAsync(tabbedPage)(backButtonのため)。

コードを見るとNavigation.PushModalAsync(tabbedPage)、tabbedPageがNavigationBar内にあり、Worksであることがわかりますが、TabbedPageをNavigationPage内に配置しようとします(PushAsyncメソッド;)、Xamarinは3つのバーを描きます...最初のバーには戻るボタンしかありません。

誰かが助けることができますか? もっとコードが必要な場合は

コード: - > Navigation.PushAsync(tabbedPage);ダブルによって、応答後半はあなたの説明とあなたのコードをチェックするために

[button1.Clicked += (s, e) => 
     { 
      tabbedPage.CurrentPageChanged += (a, b) => 
      { 
       if (tabbedPage.CurrentPage.GetType().Equals(typeof(Page1))) 
       { 
        tabbedPage.BarTextColor = Color.Green; 
       } 
       else 
       { 
        tabbedPage.BarTextColor = Color.Orange; 
       } 
      }; 
      Navigation.PushAsync(tabbedPage); 
     }; 

-> Navigation.PushModalAsync(tabbedPage), 

button2.Clicked += (s, e) => 
     { 
      NavigationPage navigationPageTabbedPage = new NavigationPage(tabbedPage); 
      tabbedPage.CurrentPageChanged += (a, b) => 
      { 
       if (tabbedPage.CurrentPage.GetType().Equals(typeof(Page1))) 
       { 
        navigationPageTabbedPage.BarTextColor = Color.Green; 
       } 
       else 
       { 
        navigationPageTabbedPage.BarTextColor = Color.Orange; 
       } 
      }; 

      Navigation.PushModalAsync(navigationPageTabbedPage); 
     };][1] 
+0

LINKのIMAGES:https://wetransfer.com/downloads/97909b77b14d7b352a973be5f4689bc520170925231433/7797ef –

+0

申し訳ありませんが、それは 'NavigationPage'とは何でしょうか?バーアイテムが選択されたときに 'TabbedPage'のバーのテキストカラーを変更したいですか? –

+0

返信ありがとうございます:)...だから、ユーザー変更タブ(CurrentPageChangedイベント)のときにTabbedPageのトップバータイトルの色を変更したいと思います...たとえば、tab1が選択されている場合、tab2が選択されている場合、タイトルはオレンジです..私は、TabbedPageが "Navigation.PushAsyncメソッド"で開いていて、うまくいかなかったときにそれをやろうとします...(button1) "Navigation.PushModalAsyncメソッド"で開くと、それが機能しました...(button2 )、私はバックボタンが必要なのでNavigation.PushModalAsyncでこれを開きたくない... Navigation.PushAsyncでこれをやり、Navigation.PushModalAsyncと同じ結果を得る方法は? –

答えて

1

申し訳ありませんが、私はあなただけ、現在のページが変更されたとき、あなたのTabbedPageのようなものであれば、その後、TabbedPageのバーにタイトルを変更したいと思いますこれは:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:local="clr-namespace:TabbedPageForms" 
      x:Class="TabbedPageForms.MainPage"> 

    <local:TodayPage Title="Today" /> 

    <local:SchedulePage Title="Schedule" /> 
</TabbedPage> 

は、あなたは、単にこのように、たとえば背後のコードでこの機能を実装することができます

public partial class MainPage : TabbedPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnAppearing() 
    { 
     base.OnAppearing(); 
     this.CurrentPageChanged += MainPage_CurrentPageChanged; 
     ChangeBarColor(); 
    } 

    protected override void OnDisappearing() 
    { 
     this.CurrentPageChanged -= MainPage_CurrentPageChanged; 
     base.OnDisappearing(); 
    } 

    private void MainPage_CurrentPageChanged(object sender, EventArgs e) 
    { 
     ChangeBarColor(); 
    } 

    private void ChangeBarColor() 
    { 
     var currentPage = this.CurrentPage; 
     switch (currentPage.Title) 
     { 
      case "Today": 
       this.BarTextColor = Color.Green; 
       break; 

      case "Schedule": 
       this.BarTextColor = Color.Orange; 
       break; 
     } 
    } 
} 

私は見ませんでしたNavigationPageにY問題の相対的な、あなたは次のようにちょうど例えばApp.csにNavigationPageでこれTabbedPageを表示することができます

MainPage = new NavigationPage(new MainPage()); 

enter image description here

+0

心配しないでください:)それは大丈夫です:)返信ありがとう、しかし、私はそれを探していない...私の写真を見ましたか? https://wetransfer.com/downloads/97909b77b14d7b352a973be5f4689bc520170925231433/7797ef –

+0

私の問題を説明するのに役立つかもしれない... –

+0

1(2)and 2(2)写真 - > Navigation.PushAsync、I can ' "Tabbed Change Color Test"カラータイトル、ユーザがタブを変更したとき... –

関連する問題