android底部導航
1. Android底部彈窗漏出底部導航欄/未能遮擋/底部透明了/未置底的問題
xxx耀10上面...底部漏出來了。另外一個項目也是類似彈窗,但是沒有這個問題。
然後對比了下這個風格文件,發現是 是否懸浮在Activity之上 的問題:
<item name="android:windowIsFloating">true</item>設置為true就行了。
不過發現一個現象就是當鎖屏再打開的時候顯示就又正常了...也就是在某個生命周期裡面做了一些事情(具體的先不管了哈。記錄下...)
使用風格文件的地方:
正在思考自己嘗試封裝彈窗(計劃包括分享彈窗,更新彈窗,獎勵彈窗等,逐步來)。這個大概是自定義View差不多了再開始嘗試搞....感覺從開始學習了好久,才完成了個人計劃的一小半....
2. Android底部導航欄中間凸起
這是布局:
** android:clipChildren="false"**的意思是孩子的寬高不必受父親的約束,即可大過父布局,父親以及父親的父親都必須申明才可以,中間Imageview的android:layout_gravity="bottom"表示當高度超過父布局時,底部對齊,於是就達到上圖的效果。
3. Android使用fragment實現底部導航欄切換界面
源碼鏈接
效果圖
創建bottom_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:id="@+id/bottom_icon"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#565656"
android:textSize="10sp"
android:id="@+id/bottom_text" />
public void setNormalImage(int normalIcon){
this.normalIcon = normalIcon;
ivIcon.setImageResource(normalIcon);
}
public void setFocusedImage(int focusedIcon){
this.focusedIcon = focusedIcon;
}
public void setTvText(String text){
tvText.setText(text);
}
public void setFocused(boolean isFocused){
this.isFocused = isFocused;
if(isFocused){
ivIcon.setImageResource(focusedIcon);
tvText.setTextColor(Color.parseColor("#02b5bc"));
}else{
ivIcon.setImageResource(normalIcon);
tvText.setTextColor(Color.BLACK);
}
}
<FrameLayout
android:id="@+id/frameLayout_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="11"
>
</FrameLayout>
四個如下
<com.example.qiaolulu.qiaofragment.BottomLayout
android:id="@+id/square"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</com.example.qiaolulu.qiaofragment.BottomLayout>
public class Babyextends Fragment{
@Nullable
@Override
public ViewonCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//載入你設計要顯示的界面
View view = inflater.inflate(R.layout.baby,null);
return view;
}
}
fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction =fragmentManager.beginTransaction();
firstPage =new FirstPage();
transaction.add(R.id.frameLayout_container,firstPage);
transaction.commit();
4. android側拉菜單底部導航欄怎麼設置
設置安卓底部導航欄分布方法:
1,打開手機設置
2.找到導航欄設置選項
3,進入後可選擇不同的布局方式,也可選擇將導航欄隱藏。
5. Android導航欄隱藏與浮現(二)
在 Android導航欄隱藏與浮現(一) 中已經以 Nexus5 為例, Android M 為基礎介紹了怎麼實現底部導航欄的隱藏與浮現,本文將介紹怎麼在設置(輔助功能)中加入控制該功能的開關。
上圖可以看到,應用中加入了一個 Enhance Navigation bar 的選項,該功能開啟後可以長點擊任務鍵(Recent)時,導航欄隱藏;從下不向上滑時,導航欄展示。 關閉後即取消了該功能。下面看一下整體的操作步驟:
在 Settings.apk 中修改相應的資源文件即可,修改中可以參考系統設置中的 Large text , 步驟如下:
修改 ./packages/apps/Settings/res/values-zh-rCN/strings.xml ,添加資源名稱:
修改 ./packages/apps/Settings/res/values/strings.xml ,添加資源名稱:
修改 ./packages/apps/Settings/res/xml/accessibility_settings.xml ,添加開關:
修改 ./frameworks/base/core/java/android/provider/Settings.java ,在內部類 Secure 中添加欄位:
修改文件 ./frameworks/base/packages/SettingsProvider/res/values/defaults.xml ,添加默認開關:
修改文件 ./packages/apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java , 修改部分基本和 Large text 的相同,diff後的試圖如下,也可以根據下面提供修改前和修改後的文件,可以使用 diff 工具對比查看。
diff後的文件對比試圖
AccessibilitySettings修改前 AccessibilitySettings修改後
修改 ./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java ,添加變數:
在recent鍵長點擊處添加開關控制:
使用 mmm 命令針對涉及的模塊進行打包。
使用 make snod 命令生成 system.img 。
兩次的結合完整的解決了導航欄的隱藏與浮現以及功能控制。
刷機需謹慎!刷機需謹慎!刷機需謹慎!如若刷機請提前備份數據!
6. android開發時如何去掉底部的導航欄
在一個普通類中(非繼承Activity等),點擊截界面上某一按鈕隱藏底部導航欄(Back、Home、多任務切換),再次點擊讓其出現;
實現:隱藏view.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| Utils.SYSTEM_UI_FLAG_IMMERSIVE);
顯示view.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
而且加了界面touch監聽,在隱藏模式下,單擊屏幕不讓導航欄出現;
7. Android底部中間凸起導航欄設計(簡單的自定義底部導航欄)
git地址 ,如果對您有幫助,麻煩點個贊~ 謝謝~
框架設計思想
需求分析
實現思路
通過resetHeight達到底部凸起效果
外部容器封裝
8. Android4.0底部導航欄最常用是什麼方法實現的
一般都是使用viewpager,下面的是導航欄indicator。點擊導航欄可以切換上面的頁面,當然,滑動上面的頁面下面的導航欄也可以切換。
接著說一下它的實現。類的代碼不復雜,大部分參照了viewpagerindicator中的TabPageIndicator類來實現,不過在這里我繼承的是LinearLayout
9. 超簡單,幾行代碼搞定Android底部導航欄
咳咳,答應過年增加新功能的,沒想到拖到現在,延遲了一個來月,尷尬,尷尬
那個,我們先忽略這尷尬的事情吧,進入正題才是最重要滴
老規矩,先上效果圖:
跟原來的圖有個很明顯的區別,你們也一定都發現了,對不對。那麼顯眼的小紅點,一定都看到了吧。
當然除了這個,還增加了一項功能,雖然不是很明顯,但相信也有小夥伴發現了吧,截圖的這倆手機屏幕明顯大小不同,但是底部導航欄的大小還是相差不大滴。
是的,你們沒有看多,這次不僅增加了小紅點功能,還增加了底部導航欄的適配,你沒有聽錯,以後底部導航欄也不用那些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 地址