English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
TabLayout und ViewPager werden oft zusammen verwendet, was viele Vorteile bietet, aber TabLayout hat immer noch viele Kritikpunkte.
Hier wird nur gezeigt, wie man den Abstand zwischen den Tabs einstellt, im Internet habe ich viele Methoden gefunden, was Padding und Margin betrifft, das hat nicht funktioniert, es gibt keine andere Wahl, wenn man TabLayout verwenden will, muss man selbst eine Lösung finden. Das Ergebnis ist wie folgt:
Erstens die Methode umzusetzen, da diese Einstellung nicht einfach ist, machen wir einfach etwas am Hintergrund, das Layout-Code ist wie folgt:
<android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@"+id/tl_download_tabs" android:layout_width="wrap_content" android:layout_height=""30dp" android:layout_marginTop=""10dp" android:layout_gravity="center_horizontal" android:overScrollMode="never" app:tabMode="fixed" app:tabPaddingStart=""30dp" app:tabPaddingEnd=""30dp" app:tabIndicatorHeight="0dp" app:tabBackground="@drawable"/download_tab_bg_selector" app:tabSelectedTextColor="#000000" app:tabTextColor="#ffffff"/>
Zweitens, der entscheidende Punkt liegt im Hintergrundselector, der Code lautet wie folgt:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true"> <!--<shape> <solid android:color="#ffffff"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape>--> <!--Um den Abstand zwischen den Tabs im TabLayout zu erreichen, fand ich keine andere Einstellungsart, daher musste ich den Abstand im Hintergrundbild einstellen--> <layer-list> <item> <shape> <solid android:color="@android:color/transparent"/> </shape> </item> <item android:left="5dp" android:right="5dp"> <shape> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <solid android:color="#ffffff"/> </shape> </item> </layer-list> </item> <item android:state_selected="false"> <!--<shape> <solid android:color="#bcbcbc"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape>--> <layer-list> <item> <shape> <solid android:color="@android:color/transparent"/> </shape> </item> <item android:left="5dp" android:right="5dp"> <shape> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <solid android:color="#bcbcbc"/> </shape> </item> </layer-list> </item> </selector>
Die kommentierten Stellen sind der ursprüngliche selector ohne Abstand, hier wurde direkt eine Seitlicheinrückung für den Hintergrund gesetzt, das Ergebnis ist sehr gut.
Nachteil: Wenn der Abstand zu groß ist, hat diese Methode einen kleinen Mangel, nämlich dass man auch auf leere Bereiche klicken kann, um die Tab zu wählen.
Allerdings ist es bei kleinen Abständen nicht wirklich zu spüren.
Der Gebrauch von Activity ist sehr einfach:
TabLayout mTabLayout = (TabLayout) findViewById(R.id.tl_download_tabs); mTabLayout.addTab(mTabLayout.newTab().setText("Downloaded")); mTabLayout.addTab(mTabLayout.newTab().setText("Downloading...")); mTabLayout.setupWithViewPager(mViewPager);
Vier: Ursprünglich war es eine lineare Anordnung, bei der TabLayout und ViewPager platziert waren. Versuche, einen zusätzlichen RelativeLayout außerhalb von TabLayout zu verwenden, und du wirst feststellen, dass der Text der Tabs nicht angezeigt wird. Was von der Umstellung der Reihenfolge von addTab und setupWithViewPager gesagt wurde, ist ebenfalls ein Fallstrick, den man sehen kann, aber es tritt ein noch skurrilerer Fall auf, bei dem vorne zwei leere und hinten zwei normale Tabs vorhanden sind. Es ist wirklich seltsam.
Letztendlich muss in Adapter behandelt werden, um die folgenden Methoden neu zu schreiben. Dies könnte tatsächlich rationaler sein, da es mindestens sicherstellt, dass die Anzahl der Tabs und die Anzahl der ViewPager-Seiten übereinstimmen.
@Override public CharSequence getPageTitle(int position) { if(position == 0){ return "Downloaded"; } 1{ return "Downloading..."; } return ""; }
Diese Anleitung zum Einrichten der Tab-Abstandseinstellungen in TabLayout (Beispiel-Erläuterung) ist das gesamte, was der Autor weitergegeben hat. Es wird hoffentlich eine Referenz sein und alle sollten die呐喊教程 unterstützen.
Erklärung: Der folgende Artikel wurde aus dem Internet entnommen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht von Hand bearbeitet. Sie übernimmt keine Haftung für rechtliche Probleme. Wenn Sie verdächtige Urheberrechtsinhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden, um Missbrauch zu melden.3Erklärung: Dieser Inhalt wurde aus dem Internet entnommen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht von Hand bearbeitet. Sie übernimmt keine Haftung für rechtliche Probleme. Wenn Sie verdächtige Urheberrechtsinhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden, um Missbrauch zu melden. Sobald bestätigt, wird der fragliche Inhalt sofort gelöscht.