2012-04-11 11 views
5

मैं एक आइसक्रीम सैंडविच ऐप में टैबहोस्ट/टैबविड्ज के लिए अवमूल्य पुस्तकालयों का उपयोग कर रहा हूं। मेरे पास एक्शनबैरशेलॉक से परिचित होने के लिए मेरे पास समय उपलब्ध नहीं है, इसलिए मुझे ऐप में जाना था कि मुझे पता था कि कैसे।मैं आइस क्रीम सैंडविच में एक टैबविड्ज कैसे स्टाइल करूं?

मैं जानना चाहता हूं कि मैं चयनित टैब रंग को बदलने से पृष्ठभूमि रंग और छवि में टैबविड्ज और उसके टैब ऑब्जेक्ट्स को स्टाइल करने के बारे में कैसे जा सकता हूं? मानक स्टाइल और थीमिंग का उपयोग करना प्रतीत नहीं होता है।

उत्तर

8

बहिष्कृत लाइब्रेरी कार्यों को हमेशा मानते हुए मानते हैं, जैसा कि यह होना चाहिए, यह वह प्रक्रिया है जिसका मैंने अपने टैब को रंग देने के लिए उपयोग किया है। मैं तो बस, इस प्रकार कोड में पृष्ठभूमि सेट के रूप में यह xml में direcly सुलभ नहीं था:

TabWidget tabs = (TabWidget)getTabWidget();    
     for (int i = 0; i<tabs.getChildCount(); i++) { 
      RelativeLayout tab = (RelativeLayout) tabs.getChildAt(i); 
      tab.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tabindicator)); 

tabindicator drawable इस प्रकार है:

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 
<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
<!-- Pressed --> 
<item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
<item android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
</selector> 

ड्रॉएबल साथ सिर्फ 9-पैच छवियों थे रंग, हालांकि आप एक मानक रंग का उपयोग कर एक समान प्रभाव प्राप्त करने में सक्षम हो सकता है।

+0

यह धन्यवाद पर कम या ज्यादा जगह थी। मुझे tabHost.getTabWidget() पर कॉल करके TabWidget प्राप्त करना पड़ा, लेकिन वहां से बाकी बाकी जगह पर गिर गए। कृपया धन्यवाद स्टीव_के। –

+0

समर्थन lib में पेश किए गए 'FragmentTabHost' के बाद यह फिर से उपयोग में आता है। इसके अतिरिक्त टैब बाल दृश्य 'रिलेवेटिवआउट' नहीं है लेकिन यह 'FragmentTabHost' में 'LinearLayout' है। –

संबंधित मुद्दे