欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android沉浸,Android沉浸模式狀態(tài)欄解決方案

如何實(shí)現(xiàn)Android沉浸式狀態(tài)欄

沉浸式通知欄Android4.4以上才支持的新特性。4.3不支持。

創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供成都機(jī)柜租用、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開放、透明、穩(wěn)定、高性價(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級(jí)技術(shù)保障。

具體實(shí)現(xiàn)方式如下:

1.新建個(gè)公共style,設(shè)置android:fitsSystemWindows=true

!-- 設(shè)置應(yīng)用布局時(shí)是否考慮系統(tǒng)窗口布局;true -- style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar" item name="android:fitsSystemWindows"true/item /style

2. 修改AndroidManifest.xml,讓所有的activity樣式默認(rèn)設(shè)置為AppBaseTheme(*不同項(xiàng)目要靈活處理,筆者項(xiàng)目的activity樣式都是統(tǒng)一的所以這樣設(shè)置沒問題,但是實(shí)際情況下不同的activity可能調(diào)用的樣式不一樣,需要讀者自行按自己的項(xiàng)目來設(shè)置)

application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" android:name="****"

3.新增沉浸式通知欄實(shí)現(xiàn)類,實(shí)現(xiàn)原理很簡單。

1)判斷當(dāng)前系統(tǒng)版本是不是4.4以上,判斷代碼如下:

if (VERSION.SDK_INT = VERSION_CODES.KITKAT)

2)如果大于4.4則設(shè)置狀態(tài)欄透明化,代碼如下:

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

3)獲取activity的根rootView(DecorView),然后創(chuàng)建一個(gè)新的view stateBarView并把它添加到rootView(這里手動(dòng)給它設(shè)置個(gè)ID,下次進(jìn)來時(shí)先判斷rootView是否已創(chuàng)建stateBarView,如果已創(chuàng)建則直接獲取該View這樣可以防止重復(fù)創(chuàng)建,導(dǎo)致內(nèi)存泄露)

Android 沉浸式狀態(tài)欄

沉浸式狀態(tài)欄是一種比較常見的UI風(fēng)格,接下來就去看看怎么實(shí)現(xiàn)它。

在styles.xml里增加TranslucentTheme,我們這里minSdkVersion 是以21為準(zhǔn),低于安卓5.0以下的手機(jī)很少了,就不適配了。

對(duì)于這種沒有標(biāo)題欄,圖片沉浸到狀態(tài)欄的效果,我們已經(jīng)實(shí)現(xiàn)了。如果是有標(biāo)題欄呢?比如加個(gè)Toolbar會(huì)變成下面這樣:

對(duì)于有標(biāo)題的頁面,我們希望狀態(tài)欄顏色跟標(biāo)題欄一樣就行了,不希望標(biāo)題欄上移跟狀態(tài)欄重疊,我們可以在布局文件根視圖設(shè)置如下屬性,這個(gè)相當(dāng)于設(shè)置了個(gè)padding讓狀態(tài)欄下移,當(dāng)然,為了讓狀態(tài)欄顏色跟標(biāo)題欄一樣,你還需要給根視圖設(shè)置一樣的背景色(因?yàn)闋顟B(tài)欄實(shí)際是透明的)。

運(yùn)行看看,已經(jīng)實(shí)現(xiàn)了我們的要求。

android沉浸式

1、如何修改狀態(tài)欄顏色。

2、如何修改狀態(tài)欄文字顏色。

3、如何不被虛擬鍵隱藏,或隱藏虛擬鍵。

4、如何消除沉浸式。

5、如何修改導(dǎo)航欄內(nèi)部的fragment的狀態(tài)欄顏色。

可參考:

在styles.xml中添加style

在manifest.xml文件中進(jìn)行配置

添加依賴

可以參考:暫無

以下內(nèi)容可以直接復(fù)制到工具類中,在activity初始化的時(shí)候調(diào)用即可。文字顏色分亮色暗色,分別是白色和黑色。

可以參考:

以下方法可以放置在工具類中方便調(diào)用。

1、不隱藏底部虛擬鍵,不隱藏狀態(tài)欄,布局頂部延伸至狀態(tài)欄頂部不被虛擬鍵遮擋,且狀態(tài)欄透明。

2、隱藏底部的虛擬鍵和狀態(tài)欄

fragment的狀態(tài)欄顏色其實(shí)就是activity狀態(tài)欄顏色,所以還是去改變activity的狀態(tài)欄顏色這么一個(gè)思路。

使用第三方組件,所以添加依賴

給導(dǎo)航欄控件添加tab切換事件監(jiān)聽,然后動(dòng)態(tài)改變狀態(tài)欄顏色即可,同樣使用barUtils工具類。

最后在推薦一個(gè)github上的關(guān)于沉浸式效果的組件:

Android 沉浸式/透明式狀態(tài)欄、導(dǎo)航欄

Android 從4.4開始引進(jìn)透明狀態(tài)欄和導(dǎo)航欄的概念,并且在5.0進(jìn)行了改進(jìn),將透明變成了半透明的效果。雖然此特性最早出現(xiàn)在ios,但不否認(rèn)效果還是很贊的。

至于4.4以下的手機(jī),就不要考慮此特性了,好在4.4以下的手機(jī)份額已經(jīng)非常小了。

我們先來看一下透明狀態(tài)欄的實(shí)現(xiàn),兩種常見效果圖如下:

虛擬導(dǎo)航欄并不是所有的手機(jī)都有,華為的手機(jī)多比較常見,就是上圖屏幕底部按鈕那塊區(qū)域。設(shè)置導(dǎo)航欄和狀態(tài)欄類似:

這是官方的解釋,大致意思就是我們?cè)诓季值淖钔鈱釉O(shè)置 android:fitsSystemWindows="true",會(huì)在屏幕最上方預(yù)留出狀態(tài)欄高度的padding。

由于fitsSystemWindows屬性本質(zhì)上是給當(dāng)前控件設(shè)置了一個(gè)padding,所以我們?cè)O(shè)置到根布局的話,會(huì)導(dǎo)致狀態(tài)欄是透明的,并且和窗口背景一樣。

但是多數(shù)情況,我們并不在根布局設(shè)置這個(gè)屬性,我們想要的無外乎是讓內(nèi)容沉浸在狀態(tài)欄之中。所以我們經(jīng)常設(shè)置在最上端的圖片背景、Banner之類的,如果是Toolbar的,我們可以使用一層LinearLayout包裹,并把這個(gè)屬性設(shè)置給LinearLayout,這樣就可以避免Toolbar的內(nèi)容下沉了。如:

上述方法可以解決普通頁面的透明式狀態(tài)欄需求,如有復(fù)雜需求可以參考下面這些:

Android 系統(tǒng)狀態(tài)欄沉浸式/透明化完整解決方案

Android 沉浸式狀態(tài)欄的實(shí)現(xiàn)

Android沉浸式狀態(tài)欄(透明狀態(tài)欄)最佳實(shí)現(xiàn)

還有開源庫推薦: ImmersionBar

網(wǎng)站名稱:android沉浸,Android沉浸模式狀態(tài)欄解決方案
網(wǎng)站地址:http://chinadenli.net/article42/dsegjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)品牌網(wǎng)站制作品牌網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈微信公眾號(hào)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司