重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
很多android應用底部都有一個底部導航欄,方便用戶在使用過程中隨意切換。目前常用的做法有三種:一種是使用自定義tabHost,一種是使用activityGroup,一種是結合FrameLayout實現。筆者再做了多款應用后,為了節約開發周期,封裝了一個抽象類,只要三步便可完成底部欄的生成及不同頁面的調用。
站在用戶的角度思考問題,與客戶深入溝通,找到硚口網站設計與硚口網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站制作、成都做網站、企業官網、英文網站、手機端網站、網站推廣、主機域名、虛擬主機、企業郵箱。業務覆蓋硚口地區。
public class ActivitycollectiondemoActivity extends ActivityCollection {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setBottomTabBackground(resId);// 設置底部導航背景圖
@Override
protected boolean isShowWindowFeature() {
return true;//設置是否顯示title;
@Override
protected ListIndicatorInfo setDrawableCollections() {
ListIndicatorInfo IndicatorInfos = new ArrayListIndicatorInfo();
IndicatorInfo indicatorInfo_1 = new IndicatorInfo(R.drawable.baby1,
R.drawable.baby1_s, R.string.baby1, 12, Color.WHITE,
new Intent(ActivitycollectiondemoActivity.this,
Activity01.class));
IndicatorInfo indicatorInfo_2 = new IndicatorInfo(R.drawable.baby2,
R.drawable.baby2_s, R.string.baby2, 12, Color.WHITE,
new Intent(ActivitycollectiondemoActivity.this,
Activity02.class));
IndicatorInfo indicatorInfo_3 = new IndicatorInfo(R.drawable.baby3,
R.drawable.baby3_s, R.string.baby3, 12, Color.WHITE,
new Intent(ActivitycollectiondemoActivity.this,
Activity03.class));
IndicatorInfo indicatorInfo_4 = new IndicatorInfo(R.drawable.baby4,
R.drawable.baby4_s, R.string.baby4, 12, Color.WHITE,
new Intent(ActivitycollectiondemoActivity.this,
Activity04.class));
IndicatorInfos.add(indicatorInfo_1);
IndicatorInfos.add(indicatorInfo_2);
IndicatorInfos.add(indicatorInfo_3);
IndicatorInfos.add(indicatorInfo_4);
return IndicatorInfos;
第一步:導入jar包;
第二步:讓你的homeactivity 繼承ActivityCollection類;
第三步:將你的圖片資源及跳轉intent放入list中,設置可選項;
雛形就形成啦!
xxx耀10上面...底部漏出來了。另外一個項目也是類似彈窗,但是沒有這個問題。
然后對比了下這個風格文件,發現是 是否懸浮在Activity之上 的問題:
item name="android:windowIsFloating"true/item設置為true就行了。
不過發現一個現象就是當鎖屏再打開的時候顯示就又正常了...也就是在某個生命周期里面做了一些事情(具體的先不管了哈。記錄下...)
使用風格文件的地方:
正在思考自己嘗試封裝彈窗(計劃包括分享彈窗,更新彈窗,獎勵彈窗等,逐步來)。這個大概是自定義View差不多了再開始嘗試搞....感覺從開始學習了好久,才完成了個人計劃的一小半....
方法一:隱藏
Android中布局內容被底部系統導航欄遮擋
方法二:內容上移
Android手機底部NavigationBar擋住界面的解決方法
在 Manifest.xml 文件中設置 Activity 的屬性
Android布局界面隱藏頂部導航欄
Android隱藏和顯示虛擬導航欄
Android 獲取手機存儲總大小,系統占用空間
Android 獲取屏幕寬度和高度的幾種方法
Android 獲取電池相關信息
Android電量計重要的類及函數介紹
安卓5.0后獲取所有運行的進程信息
Android獲取內存(RAM)大小信息
android 幾種殺進程的方式
Android開發中 獲取App緩存大小以及清除緩存
Looper.getMainLooper()使用誤區
Android中通過資源文件獲取drawable的幾種方法
Fragment向Activity傳遞值
注意:
git地址 ,如果對您有幫助,麻煩點個贊~ 謝謝~
框架設計思想
需求分析
實現思路
通過resetHeight達到底部凸起效果
外部容器封裝
咳咳,答應過年增加新功能的,沒想到拖到現在,延遲了一個來月,尷尬,尷尬
那個,我們先忽略這尷尬的事情吧,進入正題才是最重要滴
老規矩,先上效果圖:
跟原來的圖有個很明顯的區別,你們也一定都發現了,對不對。那么顯眼的小紅點,一定都看到了吧。
當然除了這個,還增加了一項功能,雖然不是很明顯,但相信也有小伙伴發現了吧,截圖的這倆手機屏幕明顯大小不同,但是底部導航欄的大小還是相差不大滴。
是的,你們沒有看多,這次不僅增加了小紅點功能,還增加了底部導航欄的適配,你沒有聽錯,以后底部導航欄也不用那些dp、sp了,都按照UI妹子們標注的px來就可以了,再也不用為了底部導航欄去跟UI妹子解釋啥叫dp了。
好了,效果圖展示完了,現在該進入枯燥的使用介紹了。
由于這次改動有點大,所以,先介紹下上個穩定版本的用法,到底是用最新的,還是用原來的,就看各位小伙伴的意愿了
上個穩定版本是1.1.3的,引用方式如下
compile 'com.hjm:BottomTabBar:1.1.3'
具體用法如下(備注都加好了,我也就不多廢話了):
最新版本是1.2.2的,引用方式如下
compile 'com.hjm:BottomTabBar:1.2.2'
其實1.2.0與1.1.3區別并不大,只有4點改動:
現在默認的,分割線高度都是設置的1個像素。這里以后也固定都用這個默認的高度了,不再對外提供修改的方法。
這就是新增加的適配了,多的也不說了,你們都懂的
標準尺寸,就是UI妹子給你提供的效果圖的屏幕尺寸,只要在init()方法里添加上標準尺寸,你就可以放肆的使用px了
這個方法就是控制小紅點顯示的方法了,index就是需要顯示或者隱藏小紅點的TabItem,isShow是一個boolean類型的參數,他是控制小紅點是否顯示的,如果為true,就會顯示小紅點;如果為false,就會隱藏小紅點
1.2.2版本新增了兩個方法
介紹到這里,超簡單的底部導航欄,第二階段就可以告一段落了。以后還會持續優化,完善的。
第三階段我打算封裝一下有中間凸起的底部導航欄,這個功能我本地已經做了,但是封裝進去的時候,封裝的不理想,這次就沒有上線,留作下次了。
最后,再上個 GitHub 地址