Dies ist mein Code in der Hauptaktivität
public class FilterActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager(), FilterActivity.this);
viewPager.setAdapter(pageAdapter);
// Give the TabLayout the ViewPager
final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
}
}
Und das ist mein Code im XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/app_bar">
</include>
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="fill_parent"
style="@style/MyCustomTabLayout"
android:layout_height="48dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@android:color/white" />
</LinearLayout>
Ich möchte die Hintergrundfarbe einer Registerkarte ändern, wenn sie ausgewählt ist
android
android-tabs
android-tablayout
Joel Lara
quelle
quelle
tabLayout.setBackgroundColor(colorInt)
. Wenn Sie es für jeden Reiter benötigen, können Sie die Kinder aus dem TabLayout extrahierenSie können dies versuchen:
In Ihrer XML-Hintergrunddatei:
quelle
Fügen Sie atribute in xml hinzu:
Und erstellen Sie im Zeichenordner tab_color_selector.xml
quelle
Haben Sie versucht, die API zu überprüfen ?
Sie müssen einen Listener für das
OnTabSelectedListener
Ereignis erstellen. Wenn ein Benutzer eine Registerkarte auswählt, sollten Sie überprüfen, ob diese die richtige ist, und dann die Hintergrundfarbe mit ändern.tabLayout.setBackgroundColor(int color)
Wenn dies nicht die richtige Registerkarte ist, stellen Sie sicher, dass Sie wieder zur Registerkarte wechseln wieder normale Farbe mit der gleichen Methode.quelle
android:background=FF0000
Sie können es in der XML haben.
quelle
Da ich die beste und passende Option für mich gefunden habe und sie auch mit Animation funktioniert.
Sie können verwenden
indicator
es selbst als Hintergrund verwenden.Sie können einstellen
app:tabIndicatorGravity="stretch"
Attribut , das als Hintergrund verwendet werden soll.Beispiel:
Hoffe es wird dir helfen.
quelle
app:tabIndicatorColor
@MindRoasterMirSie können den Hintergrund oder die Welligkeit der einzelnen Registerkarten folgendermaßen ändern:
quelle
Nach einigem Herumspielen habe ich so das gewünschte Aussehen erhalten (zumindest im Emulator) und es behält den Welleneffekt bei.
Und die
@drawable/tab_selector
:Zu Ihrer Information: Dies hat der Emulator gezeigt, bevor ich das
color
Argument hinzugefügt habe zu@drawable/tab_selector
:quelle
Mit diesem Attribut können Sie die Hintergrundfarbe der Registerkarte ändern
quelle
Eine der einfachsten Lösungen besteht darin, colorPrimary aus der Datei colours.xml zu ändern.
quelle