Android導(dǎo)航欄隱藏與浮現(xiàn)(二)

Android導(dǎo)航欄隱藏與浮現(xiàn)(一)中已經(jīng)以 Nexus5 為例焙压,Android M 為基礎(chǔ)介紹了怎么實現(xiàn)底部導(dǎo)航欄的隱藏與浮現(xiàn),本文將介紹怎么在設(shè)置(輔助功能)中加入控制該功能的開關(guān)。

Paste_Image.png

上圖可以看到刽严,應(yīng)用中加入了一個 Enhance Navigation bar 的選項寸潦,該功能開啟后可以長點擊任務(wù)鍵(Recent)時,導(dǎo)航欄隱藏琉历;從下不向上滑時坠七,導(dǎo)航欄展示。 關(guān)閉后即取消了該功能旗笔。下面看一下整體的操作步驟:

  • 添加試圖到相應(yīng)布局
  • 實現(xiàn)狀態(tài)保存彪置,控制邏輯
  • 在導(dǎo)航欄的操作中判斷開關(guān)狀態(tài)
  • 編譯打包

添加試圖

① 添加中文資源名稱

Settings.apk 中修改相應(yīng)的資源文件即可,修改中可以參考系統(tǒng)設(shè)置中的 Large text, 步驟如下:

修改 ./packages/apps/Settings/res/values-zh-rCN/strings.xml蝇恶,添加資源名稱:

<string name="accessibility_toggle_enhance_navigation_bar_preference_title">"增強(qiáng)導(dǎo)航欄功能"</string>

② 添加英文資源名稱

修改 ./packages/apps/Settings/res/values/strings.xml拳魁,添加資源名稱:

<string name="accessibility_toggle_enhance_navigation_bar_preference_title">Enhance navigation bar</string>

③ 添加選擇開關(guān)

修改 ./packages/apps/Settings/res/xml/accessibility_settings.xml,添加開關(guān):

<SwitchPreference
  android:key="toggle_enhance_navigation_bar_preference"
  android:title="@string/accessibility_toggle_enhance_navigation_bar_preference_title"
  android:persistent="false"/>

位置自己可以定義撮弧,文本放置在Large text功能下方潘懊。

控制邏輯

① 添加開關(guān)字段

修改 ./frameworks/base/core/java/android/provider/Settings.java,在內(nèi)部類Secure中添加字段:

public static final String ACCESSIBILITY_ENHANCE_NAVIGATION_BAR = "enhance_navigation_bar";

② 添加默認(rèn)開關(guān)

修改文件 ./frameworks/base/packages/SettingsProvider/res/values/defaults.xml,添加默認(rèn)開關(guān):

<bool name="def_accessibility_enhance_navigation_bar">false</bool>

③ 添加控制邏輯

修改文件 ./packages/apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java, 修改部分基本和 Large text 的相同,diff后的試圖如下贿衍,也可以根據(jù)下面提供修改前和修改后的文件授舟,可以使用 diff 工具對比查看。

diff后的文件對比試圖

AccessibilitySettings修改前 AccessibilitySettings修改后

讀取狀態(tài)贸辈,控制功能開關(guān)

修改 ./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java,添加變量:

private boolean enhanceNavigationSwitch = false; //默認(rèn)關(guān)閉

在recent鍵長點擊處添加開關(guān)控制:

try {
//讀取開關(guān)狀態(tài)
    enhanceNavigationSwitch = Settings.Secure.getInt(mContext.getContentResolver(), android.provider.Settings.Secure.ACCESSIBILITY_ENHANCE_NAVIGATION_BAR) == 1;
} catch (Settings.SettingNotFoundException e) {
    e.printStackTrace();
}
//開關(guān)關(guān)閉不進(jìn)行任何操作
if (!enhanceNavigationSwitch) {
    return true;
}

public boolean onLongClick(View view)的開始部分释树,用于判斷是否執(zhí)行長點擊隱藏導(dǎo)航欄

編譯打包

使用 mmm 命令針對涉及的模塊進(jìn)行打包。

source build/envsetup.sh  //初始化環(huán)境變量
lunch //切換編譯平臺

mmm ./frameworks/base/packages/SettingsProvider

## 重新編譯framework.jar
cd ./frameworks/base/core/
mm
cd ../../../

mmm ./frameworks/base/packages/SystemUI/
mmm ./packages/apps/Settings/

使用 make snod 命令生成 system.img裙椭。

小結(jié)

兩次的結(jié)合完整的解決了導(dǎo)航欄的隱藏與浮現(xiàn)以及功能控制躏哩。

刷機(jī)需謹(jǐn)慎!刷機(jī)需謹(jǐn)慎揉燃!刷機(jī)需謹(jǐn)慎扫尺!如若刷機(jī)請?zhí)崆皞浞輸?shù)據(jù)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炊汤,一起剝皮案震驚了整個濱河市正驻,隨后出現(xiàn)的幾起案子弊攘,更是在濱河造成了極大的恐慌,老刑警劉巖姑曙,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件襟交,死亡現(xiàn)場離奇詭異,居然都是意外死亡伤靠,警方通過查閱死者的電腦和手機(jī)捣域,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宴合,“玉大人焕梅,你說我怎么就攤上這事∝郧ⅲ” “怎么了贞言?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阀蒂。 經(jīng)常有香客問我该窗,道長,這世上最難降的妖魔是什么蚤霞? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任酗失,我火速辦了婚禮,結(jié)果婚禮上昧绣,老公的妹妹穿的比我還像新娘级零。我一直安慰自己,他們只是感情好滞乙,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鉴嗤,像睡著了一般斩启。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上醉锅,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天兔簇,我揣著相機(jī)與錄音,去河邊找鬼硬耍。 笑死垄琐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的经柴。 我是一名探鬼主播狸窘,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坯认!你這毒婦竟也來了翻擒?” 一聲冷哼從身側(cè)響起氓涣,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陋气,沒想到半個月后劳吠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡巩趁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年痒玩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片议慰。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蠢古,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褒脯,到底是詐尸還是另有隱情便瑟,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布番川,位于F島的核電站到涂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏颁督。R本人自食惡果不足惜践啄,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沉御。 院中可真熱鬧屿讽,春花似錦、人聲如沸吠裆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽试疙。三九已至诵棵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祝旷,已是汗流浹背履澳。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留怀跛,地道東北人距贷。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像吻谋,于是被迫代替她去往敵國和親忠蝗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,527評論 25 707
  • Android M已經(jīng)發(fā)布了很久了漓拾,很多新的特性也非常的吸引人什湘,比如Doze模式可以使導(dǎo)航時間更長长赞,刷到nexus...
    桓桓ustc閱讀 14,685評論 1 10
  • 一級標(biāo)題 二級標(biāo)題 三級標(biāo)題 四級標(biāo)題 五級標(biāo)題 文本框 引用 ">+引用內(nèi)容",空行取消引用 代碼 先mark闽撤,...
    喬安安安安娜的芝麻日常閱讀 309評論 0 0
  • 安裝 下載 安裝 功能 psutil 是一個跨平臺庫得哆,能夠輕松的實現(xiàn)獲取系統(tǒng)運行的進(jìn)程和系統(tǒng)利用率(包括cpu、內(nèi)...
    SateZheng閱讀 4,126評論 1 5
  • 生活總會在你無意間給你一些意想不到的啟示哟旗、不得不說贩据、有時候這些啟示很有用、但卻很討厭闸餐、它往往就能讓傻傻的你看清現(xiàn)實...
    未央木木閱讀 232評論 0 0