日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条

發布時間:2024/7/5 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://android.xsoftlab.net/training/system-ui/status.html

這節課將會介紹如何隱藏不同的版本的狀態條。隱藏狀態條可以使內容展示區域更大,因此可以提供一種更強的身臨其境的用戶體驗。

含有狀態條的APP:

隱藏狀態條的APP,注意這里的ActionBar同樣也隱藏了。絕不要在沒有狀態條的時候還顯示ActionBar:

在Android 4.0以下的版本中隱藏狀態條

開發者可以通過設置WindowManager的標志來隱藏Android 4.0之前的狀態條。除此之外在清單文件中設置Activity的主題也可以達到同樣的效果。如果需要狀態條一直保持隱藏狀態,那么在清單文件中設置主題是我們的首選方式:

<application ...android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >... </application>

使用Activity主題的優勢在于:

  • 相對于動態設置來說更易于維護也減小了出錯的風險。
  • 這會使得UI轉場更加平滑,因為系統在實例化Activity之前J就已經得到了它需要的UI渲染信息(狀態條隱藏等等)。

開發者可以通過設置WindowManager的標志來達到同樣的目的。這種方法適合用戶與APP交互的時候使用。

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// If the Android version is lower than Jellybean, use this call to hide// the status bar.if (Build.VERSION.SDK_INT < 16) {getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);}setContentView(R.layout.activity_main);}... }

當你設置了WindowManager標志(不論是通過Activity的主題還是動態的設置),那么該標志則會一直保留,直到將該標志移除。

在Android 4.1以上的版本中隱藏狀態條

你可以通過使用setSystemUiVisibility()方法隱藏Android 4.1以上系統的狀態條。setSystemUiVisibility()為單個的View層級設置了UI標志;這些設置被整合進了Window層級。setSystemUiVisibility()比WindowManager的控制粒度更細。下面的代碼隱藏了狀態條:

View decorView = getWindow().getDecorView(); // Hide the status bar. int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); // Remember that you should never show the action bar if the // status bar is hidden, so hide that too if necessary. ActionBar actionBar = getActionBar(); actionBar.hide();

要注意以下幾個方面:

  • 一旦UI的標志被清除(比如,通過導航的方式離開了Activity),那么如果你想重新隱藏狀態條的話則需要重新設置這些標志。
  • 在不同的地方設置UI標志還有些差異。如果在Activity的onCreate()方法中隱藏了系統條,這時用戶返回了桌面,那么系統條則會再次出現。當用戶重新打開Activity時,onCreate()不會被再次調用,所以系統條會一直保持可見。如果你想使系統條還保持原來的狀態的話,則需要在onResume()中或onWindowFocusChanged()中設置相應的標志。
  • setSystemUiVisibility()只有在View可見的時候設置才有效。
  • 由導航的方式離開View會使由setSystemUiVisibility()設置的標志被清除。

使內容顯示在狀態條的后面

在Android 4.1以上的版本中,你可以將應用的內容區域顯示在狀態條的后面,所以內容區域的尺寸并不會隨著狀態條的隱藏顯示而變化。通過使用SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN標志來實現這一點。你可能還需要使用SYSTEM_UI_FLAG_LAYOUT_STABLE標志來輔助APP維持一個穩定的布局狀態。

當你使用了這項方法,那么你就有責任確保APP UI的邊界部分不會被系統條所遮蓋。在很多情況下,你可以通過在布局文件中添加android:fitsSystemWindows=true屬性來處理這種情況。它會調整父ViewGroup的內邊距來留出系統窗口的空間,這種方法足以應對大多數的應用。

隨著ActionBar的變換同步狀態條

在Android 4.1以上的版本中,為了避免重新調整布局的尺寸,當ActionBar顯示或隱藏時,你可以開啟ActionBar的Overlay Mode。當處于Overlay Mode下時,Activity的布局會使用所有的可用空間,就仿佛ActionBar不存在一樣,系統會將ActionBar繪制在布局的上面一層。這會使布局頂部的部分變的模糊,不過當ActionBar顯示或者隱藏時,系統并不會重寫調整布局的尺寸,這會使得轉場過程無縫對接。

為了可以使ActionBar開啟Overlay Mode,你需要創建一個自定義主題,并需要繼承已有的攜帶ActionBar的主題,并需要將android:windowActionBarOverlay屬性設置為true即可。

總結

以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。