前言:
最近開發的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...