10

Sadece tasarım simgeleriyle uygulama çubuğu oluşturmak için android tasarım kitaplığındaki yeni TabLayout'u kullanmaya çalışıyorum. BöyleAndroid Tasarım Kitaplığı'nda TabLayout'u kullanarak simge içeren sekme

: enter image description here

Yeni TabLayout Android Tasarım Kütüphanesi kullanarak bunu nasıl.

Bunun için basit bir çözüm var veya sadece setCustomView kullanmam gerekiyor. Bunu kullanmaktan kaçınmaya çalışıyorum. çünkü yukarıdaki resimdeki simge için renk tonunu alamadım.

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_dashboard)) 

ama sekmesi

+0

TabLayout'u çok kullanmadım bu yüzden yardımcı olmadıysa beni affet, ama 'TabLayout # setTabTextColors (int normalColor, int selectedColor) 'kullanarak kullanmayı denediniz mi? İstediğin şeyi sana vereceğinden emin değilim, ama bunu denemekten aciz olamaz mı? –

cevap

-2

i şöyle çözüldü: Eğer java kodunda

tint_tab.xml

<com.hannesdorfmann.appkit.image.TintableImageView 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
app:tint="@color/tab_color_selector"/> 

TintableImageView tab1 = (TintableImageView) LayoutInflater.from(this).inflate(R.layout.tint_tab, null); 
tab1.setImageResource(R.drawable.ic_dummy); 
mTabLayout.getTabAt(0).setCustomView(tab1) 

ref: https://github.com/sockeqwe/appkit/blob/master/image/src/main/java/com/hannesdorfmann/appkit/image/TintableImageView.java

9

Eğer simge için bir selector oluşturmak zorunda seçtiğinizde simgesi hala aynı renkte kalın:

ben böyle yazmayı deneyin. Örneğin:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/ic_dashboard_pressed" 
      android:state_pressed="true" /> 
    <item android:drawable="@drawable/ic_dashboard_selected" 
      android:state_selected="true" /> 
    <item android:drawable="@drawable/ic_dashboard_normal" /> 
</selector> 
+3

Yeni android geliştiricileri bu soruya tökezlemek için: Bu dosya çekilebilir dizine (ör. "My_icon.xml") kaydedilmelidir. Ve düzenli bir çizilebilir simge gibi kod kullanarak erişilebilir. (ör. "R.drawable.my_icon") – ntsh

+1

, böylece 4 sekmeniz varsa 4 seçiciyi tutacağız? Bu kötü olacağını düşünürdüm .. – Manikanta

+1

@Manikanta zaten basılı, odaklanmış vb göstermek için her sekme için birden fazla simge durumları var. Seçiciler, simgeler arasındaki ilişkiyi sürdürmek için çok uygun bir yoldur. Bu teknik, düzen dosyalarını büyük ölçüde basitleştirir, çünkü yalnızca farklı durumları bilmek yerine tek bir 'çekilebilir' seçiciyle uğraşmaları gerekir. –

1

kullandım o gibi Bu: , @Budius tarafından gösterildiği gibi bir xml dosyası oluşturabilir. kodunda

: tabLayout.getTabAt(0).setIcon(R.drawable.settings_tab_drawable);

vb.