<strike id="g3zqm"></strike>

      <cite id="g3zqm"></cite>

        <tr id="g3zqm"><center id="g3zqm"></center></tr>
        <pre id="g3zqm"><sup id="g3zqm"></sup></pre>
        <li id="g3zqm"></li>
      1. 少妇高潮激情一区二区三,免费av深夜在线观看,亚洲狼人久久伊人久久伊,久久精品人人做人人爽电影蜜月,黄色特级片一区二区三区,欧美日韩在线亚洲二区综二,极品少妇无套内射视频,日本极品少妇videossexhd

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

        2018-4-2    seo達(dá)人

        如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

        隨著越來越的的app使用沉浸式狀態(tài)欄,有必要對(duì)沉浸式狀態(tài)欄學(xué)習(xí)一下,查看了很多資料,沉浸式狀態(tài)欄重要的無法三點(diǎn):1.實(shí)現(xiàn)全屏 (Android4.4跟5.0全屏處理方式有別需分開處理 )2.設(shè)置全屏之后為了保證自己寫的布局不與狀態(tài)欄重疊,需要在跟xml的跟布局設(shè)置android:fitsSystemWindows=”true” 。基于這幾點(diǎn)處理方式可能很多,但是為了便于項(xiàng)目中工具類封裝,本編實(shí)現(xiàn)方式均已代碼方式呈現(xiàn),xml設(shè)置方式可以自行查閱相關(guān)資料 3.改變狀態(tài)欄顏色

        —1.全屏設(shè)置 
        對(duì)于4.4以上系統(tǒng),因4.4以上系統(tǒng)是可以設(shè)置全屏,代碼如下:

        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
        
        • 1
        • 2

        對(duì)于5.0系統(tǒng) 具體代碼

        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
        
        • 1
        • 2
        • 3
        • 4
        • 5

        僅僅做全屏處理,我們會(huì)發(fā)現(xiàn)不管是在4.4系統(tǒng)上還是在5.0系統(tǒng)上,我們的布局內(nèi)容會(huì)與狀態(tài)欄內(nèi)容出現(xiàn)重疊。

        下圖為4.4系統(tǒng) 
        這里寫圖片描述

        下圖為8.0系統(tǒng) 
        這里寫圖片描述

        為了解決全屏設(shè)置重疊狀態(tài)欄,我們需要在全屏之上預(yù)留狀態(tài)欄的高度以便正常顯示狀態(tài)欄,而處理方式也很簡單 activity layout根目錄添加下面代碼 
        android:fitsSystemWindows=”true” 而此處我建議用代碼設(shè)置,因?yàn)橥ǔN覀冺?xiàng)目中會(huì)提取BaseActivity基類抽出一些共性,這種方式比在每個(gè)xml中設(shè)置屬性更方便 
        rootView.setFitsSystemWindows(true) 此處的rootView指的就是activity對(duì)應(yīng)的跟布局; 
        進(jìn)行以上處理之后我們會(huì)發(fā)現(xiàn)現(xiàn)在狀態(tài)欄跟我們的布局內(nèi)容不再重疊了,接下來我們就只需要處理狀態(tài)欄的顏色問題了。具體代碼如下

        ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                        childView.setFitsSystemWindows(true); } 
        
        • 1
        • 2
        • 3
        • 4
        • 5

        對(duì)于4.4系統(tǒng)因?yàn)闆]有改變狀態(tài)欄顏色的api,我們可以通過添加一個(gè)與狀態(tài)欄等高的View到根布局的父容器中,而根布局的父容器就是一個(gè)ID為android.R.id.content的幀布局被裝飾的容器中,這樣只需要設(shè)置View的顏色即可。對(duì)于5.0及以上系統(tǒng),因已提供設(shè)置狀態(tài)欄和導(dǎo)航欄顏色的api,直接設(shè)置即可; 
        對(duì)于4.4以上5.0一下系統(tǒng)

        View view=new View(this); view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,getStatusHeight())); view.setBackgroundColor(Color.RED); content.addView(view); 
        
        • 1
        • 2
        • 3
        • 4

        對(duì)于5.0及以上系統(tǒng)

        window.setStatusBarColor(Color.RED); 
        
        • 1

        獲取狀態(tài)欄高度

         private int getStatusHeight() { int statusHeight=-1; int resourceId=getResources().getIdentifier("status_bar_height","dimen","android"); if(resourceId>0){ return getResources().getDimensionPixelSize(resourceId);
                } return 0;
            } 
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8

        以上就是實(shí)現(xiàn)沉浸式狀態(tài)欄的具體過程。整體代碼如下:

        package com.example.administrator.myjavadeamo.activity; import android.graphics.Color; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import com.example.administrator.myjavadeamo.R; public class StatusBarActivity extends AppCompatActivity {
        
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//隱藏標(biāo)題欄 setContentView(R.layout.activity_status_bar); initWindow(); }
        
            private void initWindow() {
                Window window=getWindow(); if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
                    //5.0以上的手機(jī)
                    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                        childView.setFitsSystemWindows(true); }
                    window.setStatusBarColor(Color.GREEN); }else if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT){
                    //4.4以上5.0一下的手機(jī)
                    window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                        childView.setFitsSystemWindows(true); }
        
                    View view=new View(this); view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,getStatusHeight())); view.setBackgroundColor(Color.GREEN); content.addView(view); }
            } /**
             * 獲取狀態(tài)欄高度
             * @return
             */ private int getStatusHeight() {
                int statusHeight=-1; int resourceId=getResources().getIdentifier("status_bar_height","dimen","android"); if(resourceId>0){
                   return getResources().getDimensionPixelSize(resourceId); }
                return 0; }
        }  
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
        • 48
        • 49
        • 50
        • 51
        • 52
        • 53
        • 54
        • 55
        • 56
        • 57
        • 58
        • 59
        • 60
        • 61
        • 62
        • 63
        • 64
        • 65
        • 66
        • 67

        最終實(shí)現(xiàn)結(jié)果:

        4.4系統(tǒng) 
        4.4以上5.0一下系統(tǒng) 
        8.0系統(tǒng)

        5.0以上系統(tǒng)

        藍(lán)藍(lán)設(shè)計(jì)m.hengshangtqd.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

        日歷

        鏈接

        個(gè)人資料

        存檔

        主站蜘蛛池模板: 国产精品自在在线午夜出白浆| 欧美一区二区三区成人久久片 | 久久精品农村毛片| 中文字幕日韩人妻一区| 成人看的污污超级黄网站免费 | 亚洲av伊人久久青青草原| 少妇高潮喷水正在播放| 中文字幕日韩精品亚洲一区| 国产一区在线观看视频| 久久综合网色| 亚洲AV成人无码国产一区二区| 99热这里只有精品2| 国产午夜精品久久久久免费视| 亚洲一区二区三区黄色片| 成人网站免费观看永久视频下载 | 国产人妻精品久久久久久| 国产精品无码制服丝袜| 最近中文字幕完整版| 国产高清精品在线一区二区 | 国产精品一区二区三区激情| 欧美成人猛片aaaaaaa| 狠狠色成人| 国产AV无码无遮挡毛片| 国产黄色一区二区三区四区| 人妻日韩精品中文字幕| 无码人妻精品一| bt天堂新版中文在线| 欧美成人在线视频| 九九热在线观看| 人妻少妇av中文字幕乱码| 欧洲熟妇熟女久久精品综合| 人妻斩0930无码视频| 日本免费一区二区三区| 久操超碰| 亚洲人成在线观看| 精品粉嫩国产一区二区三区| 99国产精品自在自在久久| 纯肉无遮挡H肉动漫在线观看国产| 国产精成人| 午夜爽爽爽男女免费观看影院 | 精品国精品无码自拍自在线|