国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

react-native android狀態欄的實現

2024-05-06 15:33:23
字體:
來源:轉載
供稿:網友

react-native 開發App的時候難免會遇到狀態欄的,背景顏色和字體顏色與App內容頁面,色調適配,間言之就是將狀態欄顏色與App顏色一致,使用戶界面更加整體。

1.android設備系統元素

    導航欄:就是設備頂部的網絡、時間、電量等信息欄 ActionBar: 返回按鈕以及系統默認的header區域,RN開發中一般不會用到,RN中在navigation中進行定制 導航欄: 設備下方的物理返回、回桌面、選擇應用程序等系統導航欄

2.狀態欄的呈現形式

    默認展示,一直顯示手機系統的狀態欄 透明狀態欄,狀態欄背景顏色透明,狀態欄顏色與App顏色一致,用戶界面更加整體。 隱藏狀態欄(沉浸式),狀態欄完全隱藏,類似于全屏游戲、視頻播放器的效果

2.1 默認展示

系統默認狀態欄樣式,無法改變

2.2 透明狀態欄

透明狀態欄很常見,大多數的App都是使用這種模式,使得狀態欄顏色與App顏色一致,使用戶界面更加整體,整個應用看起來更加美觀。

實現透明的狀態欄的方式很多:

一、使用App的主題進行配置,在app/main/res/values/styles.xml中設置主題

<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">  <item name="android:windowTranslucentStatus">true</item> // 設置狀態欄不占據空間  // <item name="android:windowLightStatusBar">true</item> // 設置狀態欄字體顏色 </style></resources>

這種方式支持api19, 即Android4.4及以上,會在App啟動的時候就生效, 在App啟動時有權限確認、系統彈窗等也不受影響,在彈出modal之類的深色蒙層時狀態欄字體會變成成淺色

只設置 <item name="android:windowTranslucentStatus">true</item> 這種方式設置的透明狀態欄,狀態欄字體默認白色,無法再動態通過StatusBar改變狀態欄的背景顏色,在做需要改變狀態欄背景顏色的時候就比較尷尬了

再加一個 <item name="android:windowLightStatusBar">true</item> 這樣設置狀態欄字體顏色之后,在深色modal彈出的時候字體不會動態改變成白色,但可以通過StatusBar設置barStyle來改變,實際上也不是很方便

二、android原生設置,在MainActivity的onCreate中進行設置

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 設置透明狀態欄 if (Build.VERSION.SDK_INT >= 21) {  View decorView = getWindow().getDecorView();  int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;  decorView.setSystemUiVisibility(option);  getWindow().setStatusBarColor(Color.TRANSPARENT); }  // 設置透明狀態欄和透明導航欄 if (Build.VERSION.SDK_INT >= 21) {  View decorView = getWindow().getDecorView();  int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;  decorView.setSystemUiVisibility(option);  getWindow().setNavigationBarColor(Color.TRANSPARENT);  getWindow().setStatusBarColor(Color.TRANSPARENT); }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广宗县| 洛隆县| 江西省| 灵石县| 仪陇县| 防城港市| 西昌市| 略阳县| 蒲江县| 望都县| 政和县| 秭归县| 桐乡市| 安溪县| 太湖县| 云林县| 都兰县| 中江县| 阿鲁科尔沁旗| 延边| 长垣县| 包头市| 竹北市| 新丰县| 峨山| 水城县| 安龙县| 仪陇县| 绵阳市| 眉山市| 宁津县| 巴塘县| 大理市| 兰坪| 富顺县| 和顺县| 阿拉善左旗| 屯门区| 射阳县| 沅陵县| 西藏|