18

Android geliştirme konusunda oldukça yeniyim. Benimle Dayan.Soldaki, üstteki, sağdaki veya alttaki SekmeTayout simgelerini değiştirme com.android.support:design:23.1.0

Simge ve metni aynı satırda com.android.support:design:23.1.0 bir gün için hizalamaya çalışıyorum. com.android.support:design içinde Görünüşe

: onlar altındaki varsayılan simge top pozisyon ve metin değiştirdik 23.1.0. com.android.support:design içinde önce

: 23.0.1 varsayılan Yani burada

olsa (bunu çözmek için bir kolay yolu var simge olarak aynı çizgide sol ve metin üzerinde simgeyi oldu o, sakıncaları var tbh idk) olabilir:

change the version in your app's build.gradle. ex: 23.1.0 to 23.0.1 and build. 

Ve (ayrıca sol, sağ, üst, alt simgeleri hizalayabilirsiniz bu şekilde) bunu yapmak için daha iyi bir yolu var:

  1. herhangi tarafında görünür

    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); 
    

    Şimdiye kadar simgeler yapmak için elde ettik

etkinlik java
<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./düzen res bir custom_tab.xml oluşturmak böyle:

TabLayout icons

Not: setCompoundDrawablesWithIntrinsicBounds fonksiyon argümanları 4 tarafı böyle simgeleri şunlardır:

setCompoundDrawablesWithIntrinsicBounds(leftDrawable, topDrawable, rightDrawable, bottomDrawable) 
+1

bu ht adresini ziyaret edin tp: //www.androidhive.info/2015/09/android-material-design-working-with-tabs/ size yardımcı olabilir –

cevap

5

bu iyi ipucu için ATU ederiz!

Benim durumumda, tablayout başlık merkezine doğrusal bir düzen eklemem gerekiyor. Simge ve metin arasında boşluk bırakmak için bazı boşluk karakterleri ekledim.

custom_tab.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:gravity="center"> 
    <TextView 
     android:id="@+id/tabContent" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:textAlignment="center" 
     android:textColor="@android:color/white" 
     android:gravity="center"/> 
</LinearLayout> 

Başlatma kodu:

LinearLayout tabLinearLayout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); 
TextView tabContent = (TextView) tabLinearLayout.findViewById(R.id.tabContent); 
tabContent.setText(" "+getApplicationContext().getResources().getString(tabTitles[i])); 
tabContent.setCompoundDrawablesWithIntrinsicBounds(tabIcons[i], 0, 0, 0); 
mTabLayout.getTabAt(i).setCustomView(tabContent); 
+1

marj fikrini beğeniyorum! – Atu

+0

https://stackoverflow.com/questions/36160978/align-icons-in-tab-layout-to-the-left/46247521#46247521 adresine bakın. –

0

kullanın aynı xml kod @juzamn tarafından verilen ve sadece tüm sekmesi için döngü bu küçük ayarlamalar eklemek

for (int i = 0; i < tabLayout.getTabCount(); i++) { 
yourlinearlayout = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.title_text, null); 
tab_text = (TextView) yourlinearlayout.findViewById(R.id.tabContent); 
     tab_text.setText(" " + tab_titles[i]); 
tab_text.setCompoundDrawablesWithIntrinsicBounds(tabicons[i], 0, 0, 0); 
    tabLayout.getTabAt(i).setCustomView(tab_text);}