Я довольно новичок в разработке Android. Так что терпите меня.
Я пытался выровнять значок и текст в одной строке в com.android.support:design:23.1.0 в течение дня.
По-видимому, в com.android.support:design:23.1.0 они изменили положение значка по умолчанию на верхнее, а текст — внизу.
Ранее в com.android.support:design:23.0.1 по умолчанию был значок слева и текст в той же строке, что и значок.
Итак, вот простой способ решить эту проблему (хотя у него могут быть недостатки, idk tbh):
change the version in your app's build.gradle. ex: 23.1.0 to 23.0.1 and build.
И есть лучший способ сделать это (таким образом вы также можете выровнять значки слева, справа, сверху, снизу):
- создайте custom_tab.xml в 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. в вашей деятельности 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);
До сих пор я добился того, чтобы значки отображались с любой стороны следующим образом:
PS: аргументами функции setCompoundDrawablesWithIntrinsicBounds являются 4 боковых значка, например:
setCompoundDrawablesWithIntrinsicBounds(leftDrawable, topDrawable, rightDrawable, bottomDrawable)