2017-06-13 2 views
1

neu in Xamarin-Form.Einstellung auf der Registerkarte "TabbedPage"

Ich habe die folgende Registerkarte. Ich wollte folgendes tun:

1) Die Hintergrundfarbe des Tabs ist weiß oder Eins mit Farbe, eins mit weißer Farbe.

2) ändern Sie die Farbe der Unterstreichung des Tabs.

3) Wie viele Tabs kann ich haben?

4) Die Schriftgröße für den Text.

5) Da jedes Tab eine contentPage hat, wie man contentPage von außen statt innerhalb des Tabs referenziert, da meine contentpage sehr lang und komplex ist.

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      BackgroundColor="White" 
      x:Class="MainPage2"> 

    <ContentPage Title ="Page1" Icon="itemIcon1" WidthRequest="200" BackgroundColor="White"> 

     <ContentPage.Content> 

      <StackLayout VerticalOptions="Center" HorizontalOptions="Center"> 


       <Label Text="T1"> 
       </Label> 

      </StackLayout> 

     </ContentPage.Content> 
    </ContentPage> 

    <ContentPage Title ="Page2" Icon="itemIcon2" WidthRequest="200" BackgroundColor="White"> 

     <ContentPage.Content> 

      <StackLayout VerticalOptions="Center" HorizontalOptions="Center"> 

       <Label Text="T2"> 
       </Label> 

      </StackLayout> 

     </ContentPage.Content> 
    </ContentPage> 



    <ContentPage Title ="Page3" Icon="itemIcon3" WidthRequest="200"> 

     <ContentPage.Content> 

      <StackLayout VerticalOptions="Center" HorizontalOptions="Center"> 

       <Label Text="T3"> 
       </Label> 
      </StackLayout> 

     </ContentPage.Content> 
    </ContentPage> 
</TabbedPage> 

Dank

+1

Über welche Plattformen machen Sie sich hier Sorgen? Es scheint nur Android zu sein, aber brauchst du diese Menge an Anpassung auch auf iOS? Insbesondere die "Unterstreichung der Registerkarte" – SuavePirate

Antwort

0

die Tabs Styling

die Registerkarten Hintergrundfarbe Styling, Textgröße, und markieren müssen in Ihrer plattformspezifische Projekte abgewickelt werden. Also, für Android kann dies durch Überschreiben der Basis Stile mit einem benutzerdefinierten Thema erreicht werden, die Sie in Ressourcen ändern> Werte>styles.xml

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <color name="CustomHighlight">@android:color/transparent</color> 

    <style name="MyTheme" parent="MyTheme.Base"> 
    </style> 

    <!-- Base theme applied no matter what API --> 
    <style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 
     ... 
     <!-- The rest of your styles would go here --> 
     ... 
    </style> 
    <style name="Widget.TabWidget"> 
     <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item> 
     <item name="android:ellipsize">marquee</item> 
     <item name="android:singleLine">true</item> 
    </style> 


    <style name="TextAppearance.Widget.TabWidget"> 
     <item name="android:textSize">14sp</item> 
     <item name="android:textStyle">normal</item> 
     <item name="android:textColor">@android:color/tab_indicator_text</item> 
    </style> 
</resources> 

(Liberally von dieser Frage entlehnt: Android - How to Change Color of Selected Tab)

Ihr in -Linie Hintergrundfarben sollten in Ihrem XAML-Markup genügen:

<ContentPage Title ="Page2" Icon="itemIcon2" WidthRequest="200" BackgroundColor="White"> 

für iOS, die Markierungsfarbe zu ändern ziemlich trivial. In Ihrem AppDelegate.cs:

public override bool FinishedLaunching(UIApplication app, NSDictionary options) 
{ 
    UITabBar.Appearance.TintColor = UIColor.Red; 

    global::Xamarin.Forms.Forms.Init(); 

    ... 

Die Dinge werden von dort behaarten, also werde ich Sie in den Entwickler-Dokumentation, die für das Erstellen eines benutzerdefinierten Renderer einen großen Durchlauf hat: Customize Tab Bar on iOS

Tab Count

aus der Dokumentation

der Benutzer kann die Sammlung von Tabs blättern, die acr sind Wenn die Sammlung zu groß ist, um auf einen Bildschirm zu passen, wird der obere Bildschirmrand angezeigt.

Also wirklich, die Anzahl der Registerkarten ist nur begrenzt, was aus Sicht des Benutzererlebnisses sinnvoll ist. Ich versuche, nicht mehr als 6 Personen persönlich zu haben, aber Ihr Anwendungsfall könnte ein paar mehr rechtfertigen.

Verwandte Themen