2011-05-20 35 views
3

我有一個TabLayout。因爲我有一個動態添加行的tablelayout。 當選擇/單擊TableRow時,我想將其背景色設置爲Tab的按下或單擊的顏色。android:將Tab的點擊顏色設置爲TableRow的背景顏色

我不想設置任何靜態顏色,但想使用默認主題顏色。如何獲得Tablayout的顏色信息?

如何處理標籤的左側和右側?這是我得到的東西,並在設置tab_background.xml作爲所有選項卡的backgroundRoSourse: Tab bg settings

在左側,圖像沒有任何設置,但左右角是平滑的。 在右側,兩張圖片都帶有鑲邊,看到選定標籤的角落只是一個正方形,它們應該是四捨五入的,或者像沒有任何設置的那樣。 看來我得使用tab_selected_bar_right和tab_selected_bar_left。我已將它們複製到我的drawable中,但無法弄清楚如何使用它們。 @mudit提供的以下xml提供什麼設置。

請指導我。任何幫助,高度讚賞。我很急。

感謝

+0

你可以發佈你的XML佈局文件嗎? – 2012-02-03 13:24:44

回答

0

我解決了這個問題。我道歉以前沒有提及它。對不起,我錯過了。 @Yandandhar,感謝您的關注。

5

在你的java文件中添加標籤後添加以下代碼:

(我只增加2個標籤,你可以,如果你有多個選項卡添加此)

TabWidget tw = getTabWidget(); 

View tab1View = tw.getChildAt(0); 
tab1View.setBackgroundResource(R.drawable.tab_background); 

View tab2View = tw.getChildAt(1); 
tab2View.setBackgroundResource(R.drawable.tab_background); 

代碼tab_background.xml:

(把它放在可繪製的文件夾中)

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_focused="false" android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_bg" /> 

    <item android:state_focused="false" android:state_selected="true" 
     android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 

    <item android:state_focused="true" android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_bg" /> 

    <item android:state_focused="true" android:state_selected="true" 
     android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 

    <item android:state_pressed="true" 
     android:drawable="@drawable/tab_selected" /> 
</selector> 
+0

你能幫我解釋一下上面的文件嗎?你說你有2個選項卡,所以前兩個項目元素必須代表這兩個選項卡 - 這只是我的猜測。第五項元素是什麼?請幫忙。 – Tvd 2011-05-20 11:05:38

+0

您可以在課程中添加「選項卡視圖」對象,其中「n」是選項卡視圖中選項卡的數量。 Java代碼:查看標籤 View = tw.getChildAt(); – mudit 2011-05-20 11:08:13

+0

我使用1.6,它沒有tab_bg,tab_selected。所以我得到所有5個XML元素的錯誤。 – Tvd 2011-05-20 11:19:35