2016-12-09 3 views
-3

enter image description hereändert Hintergrundfarbe für die ausgewählten Registerkarte

Das ist mein Bildschirmlayout und ich möchte, dies zu tun, wenn ich auf Popular Registerkarte geklickt, dann Beliebten Block sollte färbt sich blau.

Gleiches für die Registerkarte Preis, Zeit und Dauer.

Ich habe versucht, mit Linear Layout zu tun, aber es tut es nicht.

Ich habe es in der Textansicht genommen, und die vertikalen und horizontalen Linien werden mit View Tag verwendet und ich habe TabLayout nicht verwendet, nur um es einfach zu machen Ich habe einfach TextView With Background verwendet.

Bitte schlagen Sie mir eine richtige Lösung mit Code vor, wenn Sie können.

Jede Hilfe würde geschätzt werden.

+0

in xml von tablayout, App hinzufügen: tabIndicatorColor = "@ color/colorPrimary" –

+0

ich verwendet habe, Textview in Bro .. Linearlayout sein nicht TabLayout –

+0

dann, wenn Sie auf textview chage Farbe dieser Textansicht. –

Antwort

0

In der XML-Datei folgende Zeile in Ihrer TabLayout hinzufügen,

app:tabBackground="#0000FA" 

dieses Sie können von ausgewählten Registerkarte chage Farbe.

Wenn Sie TextView verwendet haben, dann erstellen Sie einfach diese Methode oder fügen Sie diese Methode zu Ihrer Java-Datei & hinzu, rufen Sie sie von jedem textviews onclick-Ereignis ab, indem Sie die Textansicht an sie übergeben.

public void changeTabColor(TextView tvSelected){ 
    tv1.setBackgroundColor(Color.White); 
    tv2.setBackgroundColor(Color.White); 
    tv3.setBackgroundColor(Color.White); 

    tvSelected.setBackgroundColor(Color.Blue); 
} 
+0

Lass es mich versuchen, Kumpel. –

0

versuchen Sie dies:

public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.popular_tab: 
      ResetTabColor(); 
      popular_tab.setBackgroundColor(Color.blue); 
     case //Do the rest with other tab 
    } 
} 

private void ResetTabColor(){ 
popular_tab.setBackgroundColor(Color.TRANSPARENT); // or white color 
time_tab.setBackgroundColor(Color.TRANSPARENT); 
duration_tab.setBackgroundColor(Color.TRANSPARENT); 
price_tab.setBackgroundColor(Color.TRANSPARENT); 
Verwandte Themen