您好,登錄后才能下訂單哦!
在一般的情況下,我們只需要在Tab欄中實現兩種狀態的切換,這時候運用selector就可以簡單的實現了。
而如果是三種狀態之間的切換呢,具體效果如圖所示
(注:實現的是使用FragmenTabHost)
效果是不選中時顯示最左邊狀態,選中第一次時顯示中間狀態,再一次點擊過后顯示右側狀態。
在找到正確的做法之前,我試過了TabHost的所有監聽器,均以失敗告終。
其后,我們知道每一個tab標簽都是一個布局,所以我在把這個布局添加到tab中時設置點擊事件,這樣做又是否可行呢,答案依舊是否定的,與TabHost的點擊事件一樣,他們都會被我們實現的onTabChangedListener搶占了。
最后才在同學的幫助下找到了一個能實現此效果的方法:
mTabHost.getTabWidget().getChildAt(1).setOnClickListener()
利用mTabHost.getTabWidget().getChildAt(
1
)
方法找到的是tab標簽位置為1的那個布局,設置它的點擊事件,在點擊事件中找到布局之中的圖片,去設置即可。
照理說此時應該完美無瑕了,可是運行出來后,發現這是tab為1的這個位置會有點擊事件(當然了,設置圖片這個是看不出來的,發個Toast還是能出來的),但是點擊它選中的效果沒有了。
這是因為此時這個tab標簽的位置只去響應了我們的點擊事件,而不會響應TabChangeLinstener的事件了。
此時需要在監聽事件的代碼中加入一句話,設置當前選中的tab標簽
mTabHost.setCurrentTab(1);
這樣就真的能做到完美無瑕了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。