2012-04-16 17 views
7

To doprowadza mnie do szaleństwa: Nie mogę do końca życia dowiedzieć się, jak zmienić stopkę i kolory tekstu mojego TabPageIndicator (z ViewPagerIndicator Jake Whartona). Spojrzałem na kod źródłowy przykładowej aplikacji ViewPagerIndicator i nie mogę znaleźć, gdzie kod różni się dla próbek "Domyślnych" i "Stylizowanych". Domyślnie ma domyślną niebieską stopkę i biały tekst, podczas gdy przykładowy tytuł ma czerwoną stopkę i używa szarej czcionki.Zmiana TabPageIndicator stopka i kolory tekstu (ViewPagerIndicator)

Wiem, że to możliwe, ale nie mogę się dowiedzieć, jak to zrobić! Każda pomoc jest ogromnie doceniana. :)

+0

możesz podać nam link do kodu źródłowego dla próbki ViewPagerIndicator aplikacji? –

+0

@haythemsouissi: tutaj jesteś: https://github.com/JakeWharton/Android-ViewPagerIndicator – anticafe

Odpowiedz

4

Tak, to różni się od Oczywisty definicji dla tematu:

Dla domyślnej zakładce:

<activity 
      android:name=".SampleTabsDefault" 
      android:label="Tabs/Default" 
      android:theme="@style/Theme.PageIndicatorDefaults"> 

A stylizowany zakładka:

<activity 
      android:name=".SampleTabsStyled" 
      android:label="Tabs/Styled" 
      android:theme="@style/StyledIndicators"> 
+2

Cóż, chyba nie wyglądałem wystarczająco mocno na próbce. Wygląda na to, że zmienił kolor stopki, aby dostarczać różne obrazy Drawable do wykorzystania jako stopka. Miałem nadzieję, że będzie to tak proste, jak dodanie linii XML, ale najwyraźniej będę musiał otworzyć Photoshopa i przerobić kafelki, używając mojego własnego koloru. Szkoda; Szkoda, że ​​on (Jake Wharton) nie użył kolorów zamiast obrazów. Mimo wszystko, dziękuję za twoją pomoc. – mightimaus

+0

Jak zmienić kolor tekstu? – Dhasneem

+0

@ EverythingTech96 hej, jak udało ci się zmienić obrazy, które można umieścić tam gdzie one ... plz prowadzą mnie ... to mnie denerwuje .. wszystko co znalazłem to vpiTabPageIndicatorStyle ..: S – baboo

3

myślę poprawną odpowiedzią jest dodanie następujący styl do pliku style.xml (zawiera elementy informujące VPI o wyświetlaniu). Coś takiego:

<style name="Widget.MyTitlepageIndicator"> 
    <item name="footerColor">#ff99cc33</item> 
    <item name="footerIndicatorStyle">underline</item> 
    <item name="footerIndicatorHeight">3dp</item> 
    <item name="footerLineHeight">1.5dp</item> 
    <item name="footerPadding">6dp</item> 
    <item name="selectedColor">#ffffffff</item> 
</style> 

Następnie w pliku layout.xml, gdzie można zdefiniować VPI, wystarczy poinformować go o utworzonego stylu, tak:

<com.viewpagerindicator.TitlePageIndicator 
    android:id="@+id/history_vp_ind" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/Widget.MyTitlepageIndicator" /> 
+0

Twój przykład odnosi się do "TitlePageIndicator", podczas gdy pierwotne pytanie odnosiło się do "TabPageIndicator". –

0

Aby to zrobić programowo zmodyfikuj TabPageIndicator i dodaj następującą metodę:

public void setTextColor(int color) { 
    for (int i = 0; i < mTabLayout.getChildCount(); i++) { 
     View child = mTabLayout.getChildAt(i); 
     if (child instanceof TextView) 
      ((TextView) child).setTextColor(color); 
    } 
} 

Następnie wystarczy użyć metody, aby zmienić kolor tekstu z widokiem na wskaźniku. Na przykład:

setTextColor(0xFFFFFFFF) 

będzie biały.

0

można zmienić domyślne tło TabPageIndicator na 2 sposoby

1. można zmienić tło w XML

<com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#0c445c" /> 

2. Wymień konstruktor w Klasa TabPageIndicator.java w bibliotece podglądu

public TabPageIndicator(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     setHorizontalScrollBarEnabled(false); 

     mTabLayout = new IcsLinearLayout(context, R.attr.vpiTabPageIndicatorStyle); 
     mTabLayout.setBackgroundColor(Color.parseColor("#0c445c")); 
     addView(mTabLayout, new ViewGroup.LayoutParams(WRAP_CONTENT, MATCH_PARENT)); 
    } 

Nadzieja to pomóc

Powiązane problemy