zoukankan      html  css  js  c++  java
  • Android 适配小白条

    开发者这里可以把Android 9及更高版本上的的小白条理解为虚拟按钮,适配方法也一样,这里有四种适配方法,其中部分方法可能在API30中弃用了,请自行替换选择。

    不适配,显示大黑边

    不多解释

    沉浸适配,显示透明黑边

    代码:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    

    需要给适配的View添加属性android:fitsSystemWindows="true"

    When this flag is enabled for a window, it automatically sets the system UI visibility flags View#SYSTEM_UI_FLAG_LAYOUT_STABLE and View#SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN.

    效果显示:

    沉浸适配,无黑边

    代码

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        getWindow().setStatusBarColor(Color.TRANSPARENT);
        getWindow().setNavigationBarColor(Color.TRANSPARENT);
        getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE|
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|
            View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        );
    

    需要给适配的View添加属性android:fitsSystemWindows="true"

    效果:

    给虚拟键设置颜色

    代码:

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        getWindow().setStatusBarColor(Color.BLUE);     //设置状态栏的背景颜色
        getWindow().setNavigationBarColor(Color.BLUE);  //设置虚拟键的背景颜色
    

    效果:

  • 相关阅读:
    贪心算法与动态规划
    Linux重要目录结构
    博客园添加目录索引
    冒泡排序&插入排序&其他排序
    Linux下部署自己写的Web项目
    Java算法入门-数组&链表&队列
    Java集合-数据结构之栈、队列、数组、链表和红黑树
    Java集合-单例模式斗地主&Collections类的shuffle方法了解
    什么是反向代理服务器
    Linux信号处理
  • 原文地址:https://www.cnblogs.com/frrj/p/14179703.html
Copyright © 2011-2022 走看看