Soru & Cevap

Tab cizgisi rengi degisimi

30.09.2013 - 01:31

Merhabalar,

Tabhost kullaniyorum ve tabhostun aktif olan cizgisini  ve tum cizgileri istedigim renge cevirmek istiyorum. Tiklandiginda tiklanan tab da olusan rengide degistirmek istiyorum . Resmini ekledim. Yardimci olabilirmisiniz?

23 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user serkan.dogantekin
serkan.dogantekin
01.10.2013 - 08:23

Yukarıda text için pardon ama mesajıma hata aldığımdan content ile ilgili bir sorun olabilir mi diye düşündüm, o yüzden görünüyor.

Biraz daha farklı olarak yazarsam:

Tab seçimi yaptığında seçili tab'ı boyadığından yeni bir tab seçimi yapıldığında bir önceki seçili tab'ı da tekrardan seçili olmayanların renginde boyaman gerekiyor.


Alt çizgi konusunda TabWidget'ın aşağıdaki metodları işine yarayabilir:
  setLeftStripDrawable()
  setRightStripDrawable()
  setStripEnabled()

Bu durumda şu şekilde ilerleyebiliriz:
1) alt çizgi için bir image dosyası hazırlarız (adı strip.png olsun)
2) kod içerisinde şunu ekleriz:
  tabHost.getTabWidget().setStripEnabled(true);
  tabHost.getTabWidget().setRightStripDrawable(R.drawable.strip);
  tabHost.getTabWidget().setLeftStripDrawable(R.drawable.strip);

Profile picture for user sultan
sultan
30.09.2013 - 03:02

int tabCount = tabHost.getTabWidget().getTabCount();

for (int i=0; i < tabCount; i++) {

 tabHost.getTabWidget().getChildTabViewAt(i).setBackgroundColor(Color.RED);

}

bu kod her tabin rengini kirmizi yapti.

tabHost.setOnTabChangedListener( new OnTabChangeListener() {

public void onTabChange(String tabId) {

tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.BLUE);

}

});

bu kod ise tiklanan tabi mavi yapti diger tablari da tikladigimda eski tiklanan da yeni tiklanan da mavi oldu. 

 

Benim istedigim sey sadece altindaki cizginin rengini degistirmek.??

 

Profile picture for user serkan.dogantekin
serkan.dogantekin
30.09.2013 - 02:45

Kod üzerinde deneme şansım olmadı ama Android API dokümanlarını incelediğimde TabHost üzerinde getTabWidget metodunu üzerinden ilerleyerek tabların rengine müdahale etmek mümkün görünüyor:

int tabCount = tabHost.getTabWidget().getTabCount();

for (int i=0; i < tabCount; i++) {

 tabHost.getTabWidget().getChildTabViewAt(i).setBackgroundColor(Color.RED);

}

Benzer şekilde seçilen tab'ın rengini değiştirmek için TabHost sınıfındaki setOnTabChangedListener metodu kullanılabilir görünüyor:

tabHost.setOnTabChangedListener( new OnTabChangeListener() {

public void onTabChange(String tabId) {

tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.BLUE);

}

});

Bunları bir deneyebilir misin acaba?