内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

android沉浸式,android沉浸式狀態(tài)欄和虛擬鍵

安卓5.1怎么實現(xiàn)沉浸式狀態(tài)欄

studio,中引入沉浸式兼容庫

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蘆淞免費建站歡迎大家使用!

compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’

eclipse,可以導入相應(yīng)的那個類。

第一類,兼容actionbar

第一步:設(shè)置activity主題android:theme=”@style/ActionBarTheme”

style name="ActionBarTheme" parent="android:Theme.Holo.Light.DarkActionBar"

!-- API 14 theme customizations can go here. --

item name="android:actionBarStyle"@style/ActionBarStyle/item

/style

style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"

item name="android:background"@color/actionbar_bg/item

/style

第二步:設(shè)置狀態(tài)欄透明,然后設(shè)置狀態(tài)欄沉浸的顏色

@TargetApi(19)

private void setTranslucentStatus(boolean on) {

Window win = getWindow();

WindowManager.LayoutParams winParams = win.getAttributes();

final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;

if (on) {

winParams.flags |= bits;

} else {

winParams.flags = ~bits;

}

win.setAttributes(winParams);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT) {

setTranslucentStatus(true);

}

SystemBarTintManager tintManager = new SystemBarTintManager(this);

tintManager.setStatusBarTintEnabled(true);

//設(shè)置沉浸的顏色 tintManager.setStatusBarTintResource(R.color.statusbar_bg);}

第三步:設(shè)置適應(yīng)windows,在布局文件設(shè)置

android:fitsSystemWindows=”true”

如果不設(shè)置,應(yīng)用的ui會頂上去,頂進system ui

ok

第二類 沒有actionbar的activity

第一步,設(shè)置主題,android:theme=”@style/FullBleedTheme”

style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar"

!-- API 14 theme customizations can go here. --

/style

style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDecor"

!-- API 19 theme customizations can go here. --

/style

或者

用toolbar只能設(shè)置Theme.AppCompat.NoActionBar主題

style name="AppThemeToolbar" parent="Theme.AppCompat.NoActionBar"

item name="colorPrimary"#2196F3/item

item name="colorPrimaryDark"#2196F3/item

!--item name="colorPrimaryDark"#1565C0/item--

item name="colorAccent"#E91E63/item

/style

第二步:同上一個第二步。

設(shè)置狀態(tài)欄透明+顏色

mTintManager = new SystemBarTintManager(this);

mTintManager.setStatusBarTintEnabled(true);

mTintManager.setNavigationBarTintEnabled(true); mTintManager.setStatusBarTintResource(R.color.statusbar_bg);

android沉浸式

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

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

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

4、如何消除沉浸式。

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

可參考:

在styles.xml中添加style

在manifest.xml文件中進行配置

添加依賴

可以參考:暫無

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

可以參考:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)判斷當前系統(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)建一個新的view stateBarView并把它添加到rootView(這里手動給它設(shè)置個ID,下次進來時先判斷rootView是否已創(chuàng)建stateBarView,如果已創(chuàng)建則直接獲取該View這樣可以防止重復創(chuàng)建,導致內(nèi)存泄露)

以下是具體代碼實現(xiàn):

import android.annotation.SuppressLint;import android.app.Activity;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Build;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.FrameLayout.LayoutParams;/** * 沉浸式通知欄公共類 * @author hurrican * */@SuppressLint({ "InlinedApi", "ResourceAsColor" })public class ImmersedNotificationBar { private Activity activity ; //設(shè)置沉浸式通知欄的ID(防止重復創(chuàng)建) private final static int IMMERSED_NOTIFICATION_BAR_ID = 12345678 ; private final static String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height" ; public ImmersedNotificationBar(Activity activity){ this.activity = activity ; } //獲取狀態(tài)欄高度 private int getStatusBarHeight(Resources res){ int statusBarHeight = 0; int resourceId = res.getIdentifier(STATUS_BAR_HEIGHT_RES_NAME, "dimen", "android"); if (resourceId 0) { statusBarHeight = res.getDimensionPixelSize(resourceId); } return statusBarHeight ; } //添加頂部狀態(tài)欄 private View addStateBar(Activity activity,ViewGroup rootView,int statusBarHeight){ //創(chuàng)建新的View,并添加到rootView頂部) View statusBarView ; if(null!=rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID)){ statusBarView = rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID); }else{ statusBarView = new View(activity); rootView.addView(statusBarView); } statusBarView.setId(IMMERSED_NOTIFICATION_BAR_ID) ; LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,statusBarHeight); params.gravity = Gravity.TOP; statusBarView.setLayoutParams(params); statusBarView.setVisibility(View.VISIBLE); return statusBarView ; } /** * 設(shè)置狀態(tài)欄顏色 * @param ColorId */ public void setStateBarColor(int ColorId){ if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activity的頂級布局 ViewGroup rootView = (ViewGroup) window.getDecorView(); //透明化狀態(tài)欄 window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //獲取狀態(tài)欄目的高度 int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundColor(ColorId) ; } } /** * 設(shè)置狀態(tài)欄顏色 * @param ColorId */ public void setStateBarDrawable(Drawable drawable){ if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activity的頂級布局 ViewGroup rootView = (ViewGroup) window.getDecorView(); //透明化狀態(tài)欄 window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //獲取狀態(tài)欄目的高度 int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundDrawable(drawable) ; } }}

android中怎么實現(xiàn)沉浸式狀態(tài)欄

styles.xml設(shè)置如下:

style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/

style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/

style name="AppTheme.NoActionBar"

item name="windowActionBar"false/item

item name="windowNoTitle"true/item

item name="windowActionModeOverlay"true/item

item name="android:actionModeBackground"@drawable/context_menu/item

/style

style name="TranslucentTheme" parent="AppTheme.NoActionBar"

/style

V21的styles.xml設(shè)置如下:

style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /

style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /

style name="AppTheme.NoActionBar"

item name="windowActionBar"false/item

item name="windowNoTitle"true/item

item name="android:windowDrawsSystemBarBackgrounds"true/item

item name="android:windowContentTransitions"true/item

item name="android:statusBarColor"@color/colorPrimary/item

item name="windowActionModeOverlay"true/item

item name="android:actionModeBackground"@drawable/context_menu/item

/style

style name="TranslucentTheme" parent="AppTheme.NoActionBar"

item name="android:windowTranslucentStatus"false/item

item name="android:windowTranslucentNavigation"false/item

/style

再在要顯示的toolbar里加上屬性:

android:fitsSystemWindows="true"

主題的屬性設(shè)置為:

style name="TranslucentTheme" parent="AppTheme.NoActionBar"

當前題目:android沉浸式,android沉浸式狀態(tài)欄和虛擬鍵
文章鏈接:http://www.rwnh.cn/article14/dscoige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站、全網(wǎng)營銷推廣、電子商務(wù)、面包屑導航

廣告

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

成都app開發(fā)公司
兴和县| 九江市| 广州市| 浮梁县| 张北县| 拉萨市| 德化县| 伽师县| 隆昌县| 砚山县| 溧阳市| 周口市| 北碚区| 绵竹市| 灵宝市| 民丰县| 故城县| 铜川市| 阿鲁科尔沁旗| 万载县| 肇东市| 浪卡子县| 大丰市| 新余市| 泽普县| 益阳市| 乌海市| 永吉县| 扎赉特旗| 惠东县| 宁德市| 兴仁县| 蚌埠市| 昂仁县| 新化县| 永宁县| 金沙县| 滕州市| 五家渠市| 东至县| 防城港市|