ActionBar-Registerkarten legen die dynamische Breite entsprechend der Bildschirmbreite fest.

Ich habe insgesamt 5 Registerkarten. So füge ich sie hinzu:

for (int i = 0; i < tabs.length; i++) {

                if (i == 0) {
                    actionBar.addTab(
                            actionBar.newTab()
                                    .setText(null)
                                    .setIcon(R.drawable.activity)
                                    .setTabListener(this));
                } else if (i == 1) {
                    actionBar.addTab(
                            actionBar.newTab()
                                    .setText(null)
                                    .setIcon(R.drawable.group)
                                    .setTabListener(this));
                } else if (i == 2) {
                    actionBar.addTab(
                            actionBar.newTab()
                                    .setText(null)
                                    .setIcon(R.drawable.message)
                                    .setTabListener(this));
                } else if(i == 3){
                    actionBar.addTab(
                            actionBar.newTab()
                                    .setText(null)
                                    .setIcon(R.drawable.notification)
                                    .setTabListener(this));
                }
                else
                {
                    actionBar.addTab(
                            actionBar.newTab()
                                    .setText(null)
                                    .setIcon(R.drawable.hamburger)
                                    .setTabListener(this));
                }  

Ich habe es versuchtDie Lösung, aber dies legt die Breite des Tabulatorsymbols und nicht die des Tabulators selbst fest.

Folgend sind die Stile, die ich angewendet habe:

App theme :

<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light">
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:actionBarTabStyle">@style/actionBarTabBarStyle</item>
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>  

 <style name="actionBarTabBarStyle" parent="@style/Widget.AppCompat.ActionBar.TabView">
        <item name="android:paddingLeft">1dp</item>
        <item name="android:paddingRight">1dp</item>
        <item name="android:minWidth">10dp</item>
        <item name="android:maxWidth">15dp</item>
        <item name="android:showDividers">none</item>
    </style>  

Ich habe auch versucht mit customView für die Registerkarte, aber es hat nicht funktioniert.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabItemLayout"
    android:gravity="center"
    android:layout_width="wrap_content" android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:id="@+id/imageViewTab" />
</LinearLayout>

Die Tabs sind zu breit und dastabBar gleitet. Wie kann ich dafür sorgen, dass die Registerkarten die dynamische Breite gemäß der Bildschirmbreite ohne den Gleiteffekt annehmen? d.h. alle Tabs sollten in die Bildschirmbreite passen und die gleiche Breite haben.

Es sind hier 4 Registerkarten sichtbar. DasTab-Leist kann gescrollt werden, sodass beim Scrollen die fünfte Registerkarte angezeigt wird, die ich nicht möchte.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage