- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
目标:
1) 使状态栏透明 - 完成
2) 使BottomNavigationView
和Navbar
颜色相同。 - 几乎完成
问题
通过在我的 Activity
中添加以下代码,状态栏变得透明。但是,BottomNavigationView
位于 NavBar
下方。如果删除这行代码,StatusBar
将不再透明。你感觉到我在这里的痛苦吗?此外...如何使布局的 TOP 位于状态栏下方?
Activity 中的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
Activity XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<com.custom.app.view.ClickableViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/tab_layout" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/custom_black"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_main" />
</android.support.design.widget.CoordinatorLayout>
Style.xml
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/md_white_1000</item>
<item name="android:actionMenuTextColor">@color/custom_black</item>
<item name="actionMenuTextColor">@color/custom_black</item>
<item name="android:alertDialogStyle">@style/AppTheme.AlertDialog</item>
<item name="colorControlNormal">@color/md_white_1000</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:navigationBarColor">@color/custom_black</item>
</style>
最佳答案
BottomNavigationBar underneath NavBar
你的的原因BottomNavigationView
躲在后面NavBar
因为你正在设置这个标志
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
使用该标志查看结果
简单的解决方案
让您的 statusbar
透明只需使用 <item name="colorPrimaryDark">@android:color/transparent</item>
并使用下面的标志
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Root layout
您需要使用 android.support.design.widget.CoordinatorLayout
作为您的 rootlayout
CartActivity
public class CartActivity extends AppCompatActivity {
BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
} else {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
setContentView(R.layout.activity_cart);
bottomNavigationView = findViewById(R.id.tab_layout);
}
}
layout.activity_cart
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#199bd2"
android:fitsSystemWindows="true">
<android.support.design.widget.BottomNavigationView
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:background="#000"
app:itemIconTint="#FFFFFF"
app:itemTextColor="#FFFFFF"
app:menu="@menu/bottom_navigation_main" />
</android.support.design.widget.CoordinatorLayout>
CustAppTheme2
<style name="CustAppTheme2" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@android:color/transparent</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#FFFFFF</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:navigationBarColor">#000</item>
</style>
Finally OUTPUT
Finally OUTPUT on kitkat
关于android - NavBar 下方的 BottomNavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294746/
我有以下正常工作的代码: import 'package:flutter/material.dart'; import 'screen_curiosities.dart'; import 'scree
我在我的应用程序中集成了底部栏导航栏。但是当我滑动时,选项卡的颜色不会改变。这很奇怪,因为我有选择器文件。有解决这个问题的想法吗? Activity.java BottomNavigationView
我想在 BottomNavigationBar 的元素被点击后的一段时间内禁用与它的交互。 我尝试使用 AbsorbPointer 来做到这一点: int _bottomBarIndex = 0;
我正在构建一个在底部导航栏中包含 3 个项目的应用。当我更改选项卡时,会呈现一个不同的小部件。到目前为止,还不错... import 'package:flutter/material.dart';
是的,我的问题是这个。我该怎么做? 我做了一个 BottomNavigationBar,但它看起来像这样。 我的代码是这样的: bottomNavigationBar: BottomNavigatio
我试图弄清楚如何在 BottomNavigationBar 的顶部添加一条非常微妙的黑线,使其开始与其余内容更加不同。 AirBnb 就是一个很好的例子。 有没有办法用 Flutter 实现这一点?
我有一个带有 BottomNavigationBar 的 Android 应用程序,横向模式下有四个菜单项。这些项目像这样在中间聚集在一起: 我想让它们像这样均匀地分布在导航栏上: 如何完成这种格式化
在我的应用程序中,我创建了一个带有 LinearLayout 的自定义 bottomNavigationView。 但我遇到了一个问题,当虚拟键盘出现时,我的自定义 navigationView 并没
我正在使用来自 here 的 BottomNavigationBar .我仔细按照每条说明进行操作,它工作正常,直到我遇到这个问题,即图标从屏幕上弹出,并且它们之间的间隙太大。 Menu_items.
目标: 1) 使状态栏透明 - 完成 2) 使BottomNavigationView 和Navbar 颜色相同。 - 几乎完成 问题 通过在我的 Activity 中添加以下代码,状态栏变得透明。但
我在 flutter 上工作,我制作了一个有 5 个标签的应用程序,使用 BottomNavigationBar,它改变了当前显示的内容。当我点击一个选项卡时,内容会更新为新内容,但选项卡图标不会改变
我在我的 flutter 应用程序中使用 BottomNavigationBar。这是存在 View : 但我需要在项目之间添加分隔符。像这样: 这可能吗?有没有简单的方法来实现这个? 最佳答案 可以
我们可以使用 AppBar 小部件添加标题。 class HomePage extends StatelessWidget { @override Widget build(BuildCont
我正在制作一个带有标签栏的简单应用。我需要将底部导航栏的背景颜色更改为蓝色。应用程序的其余部分应为白色背景,导航栏应为蓝色背景。我该怎么做?在 ThemeData 中设置 canvasColor 无效
我用了bmnav到底部导航栏的实现。这是我的实现。 主.dart class MainWidgetState extends State { @override void initState
我无法让顶部 TabBar 在我的 BottomNavigationBar 中呈现。我只希望顶部 TabBar 显示在首页 BottomNavigationBarItem 内。我知道我可以在主页中设置
我正在用 flutter 创建我的第一个应用,但我遇到了状态管理方面的问题。我有一个带有 BottomNavigationBar 和 body: 带有 tabPages[MainTab, ...] 的
我将 BottomNavigationBar 与 TabController 一起使用。通过单击 BottomNavigationBar 的不同选项卡,TabView 正在更改内容。但是,如果我在 T
我们如何禁用连接到脚手架的 BottomNavigationBar 上的滑动? 我在官方文档中找不到这样做的方法。 最佳答案 明白了: 就用 physics: const NeverScrollabl
我正在尝试更改 BottomNavigation 图标的选定颜色,但我似乎要实现的只是更改文本颜色。请协助: 目前,选中时文本颜色变为黄色,但图标保持白色,我也希望它是黄色的,并且我尝试将非事件图标的
我是一名优秀的程序员,十分优秀!