亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android狀態(tài)欄的適配匯總

 更新時間:2019年05月14日 11:36:49   作者:sydMobile  
這篇文章主要給大家介紹了關于Android狀態(tài)欄適配的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

1.要求狀態(tài)欄透明,我們的內容布局延伸到系統狀態(tài)欄,就是人們口中說的沉浸式狀態(tài)欄:

Android 5.0 及其以后版本:設置屬性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我們的內容布局可以延伸到系統狀態(tài)欄,然后直接使用方法 setStatusBarColor() 把系統狀態(tài)欄設置成透明就好了。

Android 4.4 ~ Android 5.0 :添加了屬性 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) 可以讓狀態(tài)欄變成透明,并且使我們們的內容布局延伸到系統狀態(tài)欄。這個屬性雖然也可以在 Android 5.0 及其以后版本的手機上使用,但是效果不是我們想要的。

在 Android 4.4 之前是不支持透明狀態(tài)欄

需要注意的一點是在設置透明狀態(tài)欄的情況下,是需要我們的內容布局延伸到狀態(tài)欄的,因此這個時候使用 fitSystemWindows 這個屬性是沒有意義的,只會使得出現各種奇葩的效果。

2.狀態(tài)欄顏色和我們布局顏色搭配

其實在有的時候,我們是不需要把我們的內容布局延伸到系統狀態(tài)欄的,只是需要系統狀態(tài)欄和我們的內容布局的顏色搭配起來。

**Android 5.0 及其以后版本:**直接通過 setStatusBarColor()  或者 修改colorPrimaryDark 對應的顏色,把系統狀態(tài)欄顏色設置成搭配的顏色就可以了

**Android 4.4 ~ Android 5.0:**這個版本其實是不允許直接修改狀態(tài)欄的顏色的,只不過我們利用了一種巧妙的方法,感覺是修改了狀態(tài)欄的顏色而已。通過 getWindow().addFlags(WindowManager.LayoutParams.FALG_TRANSLUCENT_STATUS) 是狀態(tài)欄透明,并且我們的布局也會延伸到狀態(tài)欄,給我們的內容布局設置一個 padding,給這個 padding 設置一個合適的顏色來充當系統狀態(tài)欄的顏色就可以了。

Android 4.4 之前是不支持修改的

其實狀態(tài)欄的適配無外乎這兩點了,注意一定要針對不同的 Android 版本使用不同的方法,不可亂用,不可混用,不然會有各種奇葩效果!

效果圖

Android 4.4 以前

狀態(tài)欄永遠是黑底白字,沒有方法改變。上面的所有的方法也是不適用的。

Android 4.4~Android 5.0

Android 4.4 引入了 FLAG_TRANSLUCENT_STATUS 這種模式,使用這種模式可以使內容布局占據狀態(tài)欄,效果:

android:fitsSystemWindows = "true" 屬性
可以理解為給所使用的布局設置了狀態(tài)欄大小的 padding。只會作用于 Toolbar 和 根布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/main_green_00b661"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<!-- <android.support.v7.widget.Toolbar
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/tb"
  app:title="@string/activity_status_bar"
  app:titleTextColor="@android:color/white"
  app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
  android:background="@color/colorAccent">
 </android.support.v7.widget.Toolbar>-->
 <TextView
  android:fitsSystemWindows="true"
  android:background="@color/main_green_00b661"
  android:layout_width="match_parent"
  android:layout_height="1dp"
  android:text="11"
  android:textColor="#000"/>
 <ImageView
  android:contentDescription="@string/text_input"
  android:id="@+id/iv"
  android:scaleType="fitXY"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1"
  android:src="@mipmap/imga"/>
 <TextView
  android:background="@color/colorAccent"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="11"
  android:textColor="#000"/>
</LinearLayout>

比如,布局是這樣的,fitsSystemWindows 只有在根布局 LinearLayout 或者 ToolBar 上有用,在別的 View 上使用是沒有效果的。

LinearLayout 使用 fitsSystemWindows

ToolBar 設置 fitsSystemWindows 效果

可以看到效果了。其實就是相當于給布局設置了 padding top(高度相當于系統狀態(tài)欄的高度),但是考慮到兼容性的問題,如果你直接在布局中設置 paddingtop 而不是通過 FitsSystemWindows 這個屬性,那么在 Android 4.4 以下的手機上運行的話,那么效果就很糟糕了,因為 Android 4.4 以下的手機,系統狀態(tài)欄都是始終存在的,也就是說,這樣始終比 Android 4.4 以上系統的手機布局多一塊 padding ,因為這一塊 padding 沒法在系統狀態(tài)欄上。但是使用 fitsSystemWindo 就會完美適配了,因為這個屬性在 Android 4.4 以下的系統上是不起作用的。注意在使用 fitsSystemWindow 的時候,顏色問題,不同的手機系統,可能會造成延伸到狀態(tài)欄的那一塊顏色不同,理論上顏色應該和根布局的顏色一樣。

Android 5.0

到了 Android 5.0 關于狀態(tài)欄又發(fā)生了變化,新增了直接對狀態(tài)欄的操作,直接改變狀態(tài)欄顏色,這一點在之前版本是沒有的,Android 4.4 雖然可以實現改變狀態(tài)欄顏色的效果,但其實實際上是將我們的布局占據了狀態(tài)欄,然后狀態(tài)欄是透明的。其實顏色還是我們布局的顏色。

對 Android 5.0 的采取

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); (和上面對 Android 4.4 的方法是一樣的);

效果圖:

Android 6.0

在 Android 6.0 添加了可以更改狀態(tài)欄字體顏色的方法,別的都是和 Android 5.0 一樣的。

狀態(tài)欄字體顏色默認是白色。可以修改為黑色。

方法:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

// 方法
/*
* 當 insets 視圖插入,window 已經更改了,視圖層次結構調用。允許它調整內容來適應這些窗口。這個 insets 會告訴我們 status bar、input method 和其他系統 window 的空間。

通常情況下我們是不需要處理此功能的,因為應用程序的默認窗口修飾會將其應用于窗口內容。如果我們使用 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 或者 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 的時候,則需要處理這個函數了,這個時候如果我們不處理,我們的視圖內容就會默認放在系統視圖的下面。如果我們希望系統視圖不覆蓋UI的某些部分,則可以在視圖層次結構中使用此方法。
默認情況下,只是將 insets(將 insets 設置為 0 )做為 View 的 padding。并且返回true。默認情況下,此行為是關閉的,但是可以通過 setFitsSystemWindows(boolean)啟用。

此功能在層次結構中的遍歷是深度優(yōu)先的。 相同的內容insets對象沿著層次結構向下傳播,因此對其所做的任何更改都將被所有后續(xù)視圖看到(包括層次結構中的上層視圖,因為這是深度優(yōu)先遍歷)。 返回true的第一個視圖將中止整個遍歷。

*/
fitSystemWindows(Rect insets);

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • Android 高仿斗魚滑動驗證碼

    Android 高仿斗魚滑動驗證碼

    這篇文章主要介紹了Android 高仿斗魚滑動驗證碼的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Android 動畫之AlphaAnimation應用詳解

    Android 動畫之AlphaAnimation應用詳解

    本節(jié)講解AlphaAnimation 動畫,窗口的動畫效果,淡入淡出什么的,有些游戲的歡迎動畫,logo的淡入淡出效果就使用AlphaAnimation,具體的祥看本文,需要的朋友可以參考下
    2012-12-12
  • Android自定義View編寫隨機驗證碼

    Android自定義View編寫隨機驗證碼

    這篇文章主要為大家詳細介紹了Android自定義View隨機驗證碼實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Android使用Intent發(fā)送短信的實現方法

    Android使用Intent發(fā)送短信的實現方法

    這篇文章主要介紹了Android使用Intent發(fā)送短信的實現方法,結合簡單實例形式分析了Android短信發(fā)送功能的實現技巧,需要的朋友可以參考下
    2016-07-07
  • Android實現簡潔的APP更新dialog數字進度條

    Android實現簡潔的APP更新dialog數字進度條

    這篇文章主要為大家詳細介紹了Android實現簡潔的APP更新dialog數字進度條,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Android二級緩存加載圖片實現照片墻功能

    Android二級緩存加載圖片實現照片墻功能

    這篇文章主要為大家詳細介紹了Android二級緩存加載圖片實現照片墻功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android實現果凍滑動效果的控件

    Android實現果凍滑動效果的控件

    這篇文章給大家主要介紹了利用Android如何實現果凍效果滑動效果的控件,實現的效果類似于iOS有阻尼效果的滑動控件,一般我們比較親切地稱之為果凍控件,常見的如微信里[我]的那個面板模塊,即使沒有再多的選項,也不會很生硬的不允許用戶滑動。下面來一起看看吧。
    2016-11-11
  • Android圖片性能優(yōu)化詳解

    Android圖片性能優(yōu)化詳解

    這篇文章給大家分享了關于Android性能優(yōu)化之圖片優(yōu)化的相關知識點內容,有興趣的朋友參考下。
    2018-07-07
  • 去除arraylist容器中的相同的對象元素的方法

    去除arraylist容器中的相同的對象元素的方法

    下面小編就為大家?guī)硪黄コ齛rraylist容器中的相同的對象元素的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Android編程實現提取網址鏈接的方法

    Android編程實現提取網址鏈接的方法

    這篇文章主要介紹了Android編程實現提取網址鏈接的方法,涉及Android針對字符串的正則匹配操作相關技巧,需要的朋友可以參考下
    2016-10-10

最新評論