android 仿网易标题栏,仿网易新闻可滑动标题栏TabLayout(文字或图标)
近期有需要,要做一個(gè)類似于網(wǎng)易新聞首頁(yè)中的可滑動(dòng)標(biāo)題欄 TabLayout,根據(jù)大神寫的 FlycoTabLayout 改造了一下,可以加載網(wǎng)絡(luò)圖片,主要實(shí)現(xiàn)內(nèi)容如下:
1. 可配置標(biāo)題選中效果(下劃線/上三角/圓角矩形或橢圓);
2. 可配置 TabLayout 中顯示文字或網(wǎng)絡(luò)圖片,可配置文字或圖片選中繪制顏色;
3. 借助 Glide 展示加載網(wǎng)絡(luò)或本地圖標(biāo);
4. Fragment 懶加載
1. 類似于網(wǎng)易新聞的第一項(xiàng)首頁(yè),主要布局基本上是一個(gè)可滑動(dòng)的頂部 TabLayout 和一個(gè)裝載多個(gè) Fragment 的 ViewPager。這樣先解決 ViewPager 加載 Fragment 的問題,一般為了程序的運(yùn)行效率,會(huì)用到 Fragmentd 的懶加載,網(wǎng)上有太多大神的例子了,并且小菜研究不深入,主要有一個(gè)坑告知大家,在 Fragment 的 Adapter 中的方法需要注釋掉,可避免默認(rèn)加載3個(gè)或多個(gè) Fragment。
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//? ? ? ? container.removeView((View) object);
}
2. 在 FlycoTabLayout 中選擇一個(gè)比較符合需求的樣式,里面主要是對(duì)文字的展示,小菜的需求是可以加載網(wǎng)絡(luò)圖標(biāo)。只是在里面添加了幾個(gè)小方法支持一下,自己寫了一個(gè) setViewPager(mViewPager, 1, mTitleIconList);第一個(gè)參數(shù)代表 ViewPager;第二個(gè)參數(shù)0代表展示文字的,1代表展示圖標(biāo)的;第三個(gè)參數(shù)代表需要展示的圖標(biāo)的列表。
3. Glide加載網(wǎng)絡(luò)或本地圖標(biāo),封裝了一個(gè) BitmapUtil.tintBitmap 的小方法對(duì)Bitmap進(jìn)行繪制顏色,若圖標(biāo)列表中某幾項(xiàng)為空時(shí)可默認(rèn)加載固定的一個(gè)圖標(biāo)。
4. 對(duì)于文字或圖標(biāo)的選中顏色;選中狀態(tài)均放在一個(gè) config.xml 文件中,方便開發(fā)人員或其他人員修改。
標(biāo)題欄為文字的TabLayout
標(biāo)題欄為圖標(biāo)的TabLayout
本人是一個(gè) Android 小菜,很多知識(shí)點(diǎn)理解都不到位,代碼寫的也僅限于可運(yùn)行階段,有好的提議希望大家多多指點(diǎn)校正。
總結(jié)
以上是生活随笔為你收集整理的android 仿网易标题栏,仿网易新闻可滑动标题栏TabLayout(文字或图标)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝积分怎么看什么时候过期
- 下一篇: 广州信用卡年费怎么减免 可以试试一些渠道