标签: android-navigation-bar

Android:如何强制导航栏在Samsung Galaxy S8上可见

是否可以强制应用程序始终显示在Android应用程序中的导航栏?在三星Galaxy S8上,用户可以在"运行时"隐藏导航栏 - 这会在应用程序中导致一些意外行为(如果您感兴趣;我尝试在视图上添加setOnSystemUiVisibilityChangeListener并重绘,invalidate,requestLayout和forceLayout没有运气.重新启动活动不适用,因为该应用程序是单活动应用程序.我也查看了WindowInsets并且没有运气.).

因此,我只是想通过不允许用户删除导航栏来避免此问题.我在网上找到的所有资源都是为了隐藏导航栏.有人如何建议如何留下来?

java android android-navigation-bar

18
推荐指数
1
解决办法
4337
查看次数

即使不在前景中,如何更改导航栏背景(不仅仅是颜色)?

背景

不知何故,应用程序" Navbar Apps "允许自定义导航栏的背景,即使它不在前景中,甚至不仅仅是简单的颜色.

在此输入图像描述

问题

我认为只有当应用程序位于前台时才能改变它的颜色......

我在一些自定义的roms上看到它,甚至在播放音乐时都有特效,但我不知道即使没有自定义ROM(或root)也可以自定义它.

问题

  1. 这是一个黑客?它们如何改变,而不仅仅是导航栏的颜色,甚至为它设置背景图像(包括动态的电池状态)?

  2. 是否也可以更改其他系统栏,例如通知栏?

  3. 它如何检查哪个应用程序位于前台(可能需要根据当前应用程序决定何时更改颜色)?它是一个新的API吗?我认为用于获取前台活动的API已被弃用,现在无论如何都没有帮助......

android android-navigation-bar

16
推荐指数
1
解决办法
1576
查看次数

android检测三星Galaxy S8导航栏以编程方式隐藏或显示

在某些设备上,如三星S8,导航栏可以隐藏或显示,这在某些情况下是一个问题. 三星S8的导航栏可以通过单击左下方按钮隐藏或显示

我没有找到直接的方法来确定即使在Android源代码中.

我谷歌一些问题,如检查导航栏的好方法 ,但它没有帮助.

非常感谢任何帮助.

android android-navigation-bar

14
推荐指数
2
解决办法
3275
查看次数

Flutter 全屏应用。摆脱Android上应用程序底部的空白区域

我曾经SystemChrome.setEnabledSystemUIOverlays([]);让我的 Flutter 应用程序全屏显示。

状态栏永远消失了,但我在导航栏曾经所在的底部得到了这个空白区域。

图片

android-fullscreen flutter android-navigation-bar flutter-layout

11
推荐指数
1
解决办法
6813
查看次数

显示 AlertDialog 时保持全屏

基于以下代码片段,我想知道如何隐藏软键(状态栏和导航栏)并在整个应用程序会话中保持沉浸模式,即使显示 AlertDialog 也是如此:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    AlertDialog.Builder dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dialog = new AlertDialog.Builder(this);

        findViewById(R.id.button).setOnClickListener(this);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.button:
                dialog.setTitle("Title");
                dialog.setMessage("Message");
                dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface arg0, int arg1) {

                        // Dismisses dialog.
                    }
                }).create().show(); …
Run Code Online (Sandbox Code Playgroud)

android focus android-alertdialog android-statusbar android-navigation-bar

6
推荐指数
1
解决办法
1586
查看次数

Android 11 (API 30) 中的导航栏不完全透明

因为getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);在 Android API 30 中不起作用。我尝试了本教程中的另一个代码:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
            getWindow().setNavigationBarColor(Color.TRANSPARENT);
        }
Run Code Online (Sandbox Code Playgroud)

但导航栏不是完全透明的(img),就像在谷歌应用程序中一样。如何实现完全透明的导航栏?

android android-navigation-bar

6
推荐指数
1
解决办法
5073
查看次数

更改底部导航栏图标颜色?

这是我现在底部导航栏的样子:

在此处输入图片说明

看起来很棒吧?除此之外,现在您可以清楚地(或大部分情况下)看到每个图标,但是当您在我的设备上查看它时,您几乎看不到这些图标。

我目前有以下内容themes.xml

...
<!-- Navigation bar colour. -->
<item name="android:navigationBarColor">@color/pink</item>
<item name="android:windowLightNavigationBar">false</item><!-- This does nothing -->
...
Run Code Online (Sandbox Code Playgroud)

目前我minSdkVersion29岁,我targetSdkVersion30岁。

我怎么能改变图标的​​颜色,或者如果不可能,至少让它们颜色更深,这样它们就可以看到了?

android android-theme android-styles android-navigation-bar

6
推荐指数
1
解决办法
164
查看次数

Android 导航问题:多个返回堆栈

我的问题是,当我尝试使用底部导航更改片段时,它会起作用,但在一种情况下除外。我有 5 个片段,当我进入第 3 个片段并进入第 5 个片段后,第 5 个片段的图标 don\xc2\xb4t 改变了它的颜色。之后,当我进行另一次导航时,应用程序崩溃并给出下一个错误:

\n
java.lang.IndexOutOfBoundsException: fromIndex = -1\n    at java.util.ArrayList.subListRangeCheck(ArrayList.java:1014)\n    at java.util.ArrayList.subList(ArrayList.java:1008)\n    at androidx.navigation.fragment.FragmentNavigator.popBackStack(FragmentNavigator.kt:80)\n    at androidx.navigation.NavController.popBackStackInternal(NavController.kt:275)\n    at androidx.navigation.NavController.popBackStackInternal(NavController.kt:558)\n    at androidx.navigation.NavController.navigate(NavController.kt:1682)\n    at androidx.navigation.NavController.navigate(NavController.kt:1541)\n    at androidx.navigation.NavController.navigate(NavController.kt:1468)\n    at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.kt:92)\n    at androidx.navigation.ui.NavigationUI.setupWithNavController$lambda-6(NavigationUI.kt:602)\n    at androidx.navigation.ui.NavigationUI.$r8$lambda$6wzEv9QqEZKdQFS1sQQy-bdQvgE(Unknown Source:0)\n    at androidx.navigation.ui.NavigationUI$$ExternalSyntheticLambda2.onNavigationItemSelected(Unknown Source:2)\n    at com.google.android.material.navigation.NavigationBarView$1.onMenuItemSelected(NavigationBarView.java:295)\n    at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:834)\n    at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)\n    at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:985)\n    at com.google.android.material.navigation.NavigationBarMenuView$1.onClick(NavigationBarMenuView.java:133)\n    at android.view.View.performClick(View.java:7520)\n    at android.view.View.performClickInternal(View.java:7489)\n    at android.view.View.access$3600(View.java:826)\n    at android.view.View$PerformClick.run(View.java:28555)\n    at android.os.Handler.handleCallback(Handler.java:938)\n    at android.os.Handler.dispatchMessage(Handler.java:99)\n    at android.os.Looper.loop(Looper.java:233)\n    at android.app.ActivityThread.main(ActivityThread.java:8010)\n    at java.lang.reflect.Method.invoke(Native Method)\n    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)\n    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)\n
Run Code Online (Sandbox Code Playgroud)\n

但是,如果之前我单击了第 5 个片段并转到第 3 …

android android-navigation android-navigationview android-navigation-bar android-navigation-graph

6
推荐指数
1
解决办法
1270
查看次数

如何修复:打开弹出菜单时导航栏图标仍然显示(全屏 - 沉浸式粘性)

我正在尝试实现一个全屏应用程序,其中用户无法访问状态栏和导航栏

最好我希望它们被完全删除,但从我读到的情况来看,这是不可能的,除非你root设备

所以我的问题基本上是:当我显示弹出菜单时,如何隐藏导航栏图标

前

后

到目前为止,我已经尝试过:

  • hideNavigation()显示弹出菜单之前和之后调用
  • 呼入hideNavigation()onCreate(), onResume() & onWindowFocusChanged()
  • 请求焦点到另一个视图
  • 尝试从下拉列表中清除焦点(尝试失败,没有真正找到方法来做到这一点)
  • 更改图标颜色,“假装”它会被隐藏(尝试失败,没有真正找到方法来做到这一点)
  • hideNavigation()结合使用(Handler失败的尝试,可能是我没做对)
  • 尝试配置一些 COSU/KIOSK 模式选项(也许有某种方法可以完全禁用整个导航栏?我还没有找到隐藏后退按钮的方法

活动


    class PinCodeActivity, HasTitleBar {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_pin_code)
            initTitleBarWith(this)
            hideNavigation()
        }

        override fun onResume() {
            super.onResume()
            hideNavigation()
        }

        fun hideNavigation() {
            window.decorView.apply {
                systemUiVisibility = FLAGS
            }
        }

        override fun onWindowFocusChanged(hasFocus: Boolean) {
            super.onWindowFocusChanged(hasFocus)
            hideNavigation()
        }
    }

const val FLAGS = (View.SYSTEM_UI_FLAG_LOW_PROFILE or …
Run Code Online (Sandbox Code Playgroud)

android android-fullscreen android-immersive android-navigation-bar

5
推荐指数
1
解决办法
2570
查看次数

Android中半透明导航栏的问题

我通过添加以下属性来使用半透明导航栏,使我的应用程序移动导航菜单看起来像一些 Google 应用程序,其中移动导航栏有点透明,内容将通过它可见。

<item name="android:windowTranslucentNavigation">true</item>
Run Code Online (Sandbox Code Playgroud)

但我的输出就是它在此处输入图片说明

我不希望我的观点受到影响。我只需要在有更多内容在屏幕上滚动时才需要它,比如有滚动活动或在 recyclerview 中。但最后我需要我的活动视图不与它重叠。

有什么建议请...

java android android-styles android-navigation-bar

5
推荐指数
1
解决办法
150
查看次数