Ändern TabLayout Symbole auf der linken Seite, oben, rechts oder unten im com.android.Unterstützung:design:23.1.0
Ich bin ziemlich neu in android-Entwicklung. So mit mir tragen.
Ich versucht habe zu richten Sie das Symbol und der text in der gleichen Zeile in com.android.Unterstützung:design:23.1.0 für einen Tag.
Offenbar in com.android.Unterstützung:design:23.1.0 Sie haben sich geändert, die Standard-icon-position nach oben und text unten.
Zuvor in com.android.Unterstützung:design:23.0.1 der Standard war das Symbol auf der linken Seite und text in der gleichen Zeile wie das Symbol
Hier also ein einfach Weg, um es zu lösen (obwohl es könnte Nachteile haben, idk tbh):
change the version in your app's build.gradle. ex: 23.1.0 to 23.0.1 and build.
Und es gibt einen besseren Weg, es zu tun (auf diese Weise können Sie auch richten Sie die Symbole auf der linken Seite,rechts,oben,unten):
- erstellen Sie eine custom_tab.xml in res/layout
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"/>
2. in Ihrer Tätigkeit java -
TextView newTab = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
newTab.setText("tab1"); //tab label txt
newTab.setCompoundDrawablesWithIntrinsicBounds(your_drawable_icon_here, 0, 0, 0);
tabLayout.getTabAt(tab_index_here_).setCustomView(newTab);
Bisher habe ich geschafft, dass die Symbole erscheinen auf einer Seite wie dieser:
PS: setCompoundDrawablesWithIntrinsicbounds Funktion Argumente sind 4-Seite Symbole wie diese:
setCompoundDrawablesWithIntrinsicBounds(leftDrawable, topDrawable, rightDrawable, bottomDrawable)
- besuchen Sie das androidhive.info/2015/09/... kann Ihnen helfen,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke Atu für diesen guten Tipp!
In meinem Fall, muss ich hinzufügen ein lineares layout zu zentrieren tablayout Titel. Außerdem habe ich ein paar Leerzeichen um die Marge zwischen dem Symbol und dem text.
custom_tab.xml:
Initialisierungs-code:
Habe ich genau die Lösung, die Sie Jungs wollen.
Mit unter-Eigenschaft können Sie erreichen Wunsch Ergebnis.
app:tabInlineLabel="true"
Verwenden Sie die gleichen xml-code gegeben durch @juzamn und fügen Sie einfach dieses kleine Anpassungen, um eine Schleife für die gesamte Registerkarte
Eigentlich fand ich es eine elegantere Möglichkeit (IMO), um dies zu tun, ohne selbst mithilfe von benutzerdefinierten layouts, und nur mit dem aktuellen Standard-layout für tablayouts. Jede Registerkarte ein layout-Element ist in der Tat ein Vertikales LinearLayout, die mit dem 1. Element einer Bildansicht, und der Punkt 2 die TextView.
Also die Methode besteht in der Veränderung der Registerkarte LinearLayout orientation auf Horizontal. Danach ist das Symbol positioniert auf der linken Seite. Nun, wenn Sie wollen, positionieren Sie es auf der rechten Seite, können Sie entfernen Sie die Bildansicht (das ist das 1. Element) und fügen Sie es dem LinearLayout, wird es als letztes element angefügt, so dass sich am Ende der TextView, aber Sie haben zu spielen, um mit der layout-Parameter um, um es anzuzeigen abgestimmt und richtig dimensioniert.
Also anstelle von re-hinzufügen der Bildansicht am Ende des LinearLayout, können Sie fügen Sie einfach den drawable als Verbindung drawable auf die TextView. fügen Sie ein wenig Polsterung um es, und voila.
Mit dieser Methode, die wir nicht brauchen, einen benutzerdefinierten layout und brauchen nicht aufgeblasen nichts, wir haben nur die Wiederverwendung der vorhandenen Ansichten.