当前位置: 首页 > 知识库问答 >
问题:

完全透明的导航栏和状态栏

厍胤运
2023-03-14

我想制作一个完全透明的状态栏和导航栏,就像Google Play那样。当我使用窗口设置来实现它时,键盘会覆盖编辑文本。

当此代码使用键盘输入覆盖的编辑文本时:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                      WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

此外,该代码并没有使其完全透明,它只是使其半透明

getWindow().setNavigationBarColor(Color.TRANSPARENT)

还是这个

<item name="android:navigationBarColor">@android:color/transparent</item>

共有2个答案

濮翰学
2023-03-14

希望您可以在您的主路径/res/值/styles.xml中尝试这一点,这适用于任何Android设备中的透明状态栏和导航栏。

<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>

还有一件事,如果你想尝试透明度并浮动到栏,你可以使用这个,但是导航栏的背景会降低50%的透明度。

<item name="android:windowTranslucentNavigation">true</item>

当你想取消半透明导航浮动时,这个浮动可以在状态栏和导航栏之间的屏幕上显示

<item name="android:fitsSystemWindows">true</item>
法池暝
2023-03-14

你需要的是这样的东西:

class Utils {

     static void enableInmersiveMode(Activity act, boolean drawBehindNavBar) {
          View rootView = act.getWindow().getDecorView().getRootView();
          int uiFlags = rootView.getSystemUiVisibility();
          int flags =0;
          if(drawBehindNavBar) { flags = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; }
          flags = flags | uiFlags | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEEN;
          rootView.setSystemUiVisibility(flags);
     }
}

在活动的onCreate中:


@Override
void onCreate(Bundle b) {
    Utils.enableInmersiveMode(this, true);
    super.onCreate(b);
    // setContentView and the rest of your code here...
}

请记住,之后的视图将位于系统UI后面,您需要动态地为第一个和最后一个View添加填充,以便用户可以与它们交互。

 类似资料:
  • 我一直在寻找一种方法,在状态栏完全透明(而不是半透明)的情况下重新给导航栏上色。要使状态栏完全透明,需要将布局标志设置为无限制,但这也会使导航栏失去颜色。有没有办法做到这一点?

  • 我在试着做一个Android发射器。我想实现一个完全透明的状态栏和导航栏,这里是我的主题xml文件。 最后两项不管用,Lollipop上还有影子。 我想实现的(新星发射器): 如何让状态栏和导航栏“透明”而不是“半透明”?

  • 我注意到当打开我的应用程序时,有两个屏幕可以到达我的第一个颤动屏幕 1-1屏幕有灰色或(50%透明)状态和导航栏黑色和浅色图标。2-2屏幕有100%透明的状态和导航栏和白色图标。 我怎么能让所有的屏幕像第一次颤动屏幕100透明状态和导航栏与黑色图标(亮度暗)。 第一屏 第二屏 第一个颤振筛 风格xml 主要活动。kt 编辑 现在我已经改变了我的代码,第一个屏幕是正确的,但第二个屏幕仍然图标是白色的

  • 只有在第一次打开应用程序时,半透明的状态栏才会出现问题。请看屏幕截图: http://i1335.photobucket.com/albums/w673/ductruongcntt/Screenshot_2014-06-26-14-17-26_zps1e9a56f4.png 以下是我使用的样式的XML,其中包括半透明状态栏: 我的主题是:

  • 我的styles.xml: 我能做的是:

  • 我需要一个屏幕,有一个完全透明的导航栏,但状态栏应该有彩色口音。 我尝试了不同的解决方案,但都不管用。 1-尝试使用XML更改颜色 当我尝试上面的代码时,导航栏如下图所示。这是不透明的 2-试图更改windowTranslucentNavigation 我试图设置android: windowTransLucentNaviation=true和android: windowTransLucentS