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 | 沉浸模式,用户可以交互的界面。同时,用户上下拉系统栏时,会自动隐藏系统栏 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)