Xamarin.Forms android實現沉浸式


在android項目里,這樣設置

using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace Doubi.Droid
{
    [Activity(Label = "Doubi", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            var uiOpts = SystemUiFlags.LayoutStable | SystemUiFlags.LayoutFullscreen;
            //LayoutStable表示布局穩定,不隨其他變動而變動
            //LayoutFullscreen表示把布局拓寬到全屏幕

            Window.DecorView.SystemUiVisibility = (StatusBarVisibility)uiOpts;

            //把標題欄設置為透明色
            Window.SetStatusBarColor(Android.Graphics.Color.Argb(0,0,0,0));

            base.OnCreate(bundle);

            Doubi.KLineView.Density = Resources.DisplayMetrics.Density;

            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App());
        }
    }
}

更多UIFlag的說明:

Flag 意義
SYSTEM_UI_FLAG_LOW_PROFILE 弱化狀態欄和導航欄的圖標
SYSTEM_UI_FLAG_HIDE_NAVIGATION 隱藏導航欄,用戶點擊屏幕會顯示導航欄
SYSTEM_UI_FLAG_FULLSCREEN 隱藏狀態欄
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 拓展布局到導航欄后面
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 拓展布局到狀態欄后面
SYSTEM_UI_FLAG_LAYOUT_STABLE 穩定的布局,不會隨系統欄的隱藏、顯示而變化
SYSTEM_UI_FLAG_IMMERSIVE 沉浸模式,用戶可以交互的界面
SYSTEM_UI_FLAG_IMMERSIVE_STICKY 沉浸模式,用戶可以交互的界面。同時,用戶上下拉系統欄時,會自動隱藏系統欄
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM