TabLayout自定義點選事件,最新

2021-09-25 11:36:43 字數 949 閱讀 4783

前言:

最近開發的android專案中,需要根據當前tab來做相應的事件處理。

開始通過給 tablayout 新增 addontabselectedlistener 監聽的方式來解決(如下)。

但是發現這個方法不夠靈活,在頁面跳轉的時候會出現沒有tab被選中,不能在 ontabselected() 進行相應事件處理的情況。

mtablayout.addontabselectedlistener(new tablayout.ontabselectedlistener()  else if (1 == tab.getposition()) 

}@override

public void ontabunselected(tablayout.tab tab)

@override

public void ontabreselected(tablayout.tab tab)

});

但是,在專案上使用發現有問題,暴力反射獲取tablayout私有屬性的時候不通過,

最後翻看tablayout原始碼找到問題原因:

tablayout原始碼更新,私有屬性名已經從「mview"變為」view「

解決辦法:

把tab的私有屬性名稱 mview 改為 view 即可解決問題

field field = c.getdeclaredfield("mview"); *****=> field field = c.getdeclaredfield("view");

for (int i = 0; i < mtablayout.gettabcount(); i++)  else if (1 == position) 

}});

} catch (exception e)

}

TabLayout自定義總結

2 取消選中水波紋效果 參考 官方文件 2 自定義tabitem 布局 kd enet tab item.xml 3 控制選中字型的樣式 粗細 顏色等 private void inittab1 tablayout mtablayout1 nviewdatabinding.tablayout1 ta...

關於自定義控制項引用自定義屬性那點事

自定義控制項相信是每個程式猿的高階必經之路,那在我們使用自定義控制項的時候,有時候會需要使用的我們自定義的屬性,這個時候怎麼辦呢?來,我們一步一步來看。首先,第一步先找到你的資源目錄,在values中建立attrs.xml檔案 第二步 建立你需要使用的自定義屬性 注意這裡有乙個declare sty...

乙個工具類實現自定義Tablayout的下劃線寬度

只改變tablayout的下劃線的寬度,只需要乙個工具類就可以可滿足 1 寫個工具類 封裝 author fx date 2018 07 19 11 11 fuction 使用工具類友好的修改系統tablayout 下劃線寬度 public class tablayoututil catch nos...