- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将所选链接(本例中为主页)的图标和文本颜色更改为红色,并将非事件链接(本例中为类(class)和作者)的图标和文本颜色更改为绿色? The docs are very thin.
class MyBottomNavigation extends Component {
render() {
return (
<Paper zDepth={1}>
<BottomNavigation selectedIndex={this.state.selectedIndex}>
<BottomNavigationItem
label="Home"
icon={recentsIcon}
/>
<BottomNavigationItem
label="Course"
icon={favoritesIcon}
/>
<BottomNavigationItem
label="Authors"
icon={nearbyIcon}
/>
</BottomNavigation>
</Paper>
)
}
}
export default MyBottomNavigation
最佳答案
大多数 Material-UI 组件都有三个独立的信息源:
API 文档中的每个组件都记录了您可以通过 classes
属性传入的类,以覆盖组件不同方面的样式。
在本例中,我们关心的组件是 BottomNavigationAction
。在 CSS您将找到 API 文档的一部分:
root
Styles applied to the root element.
selected
Styles applied to the root element if selected.
看到这个你可能首先尝试:
const styles = {
root: {
color: "green"
},
selected: {
color: "red"
}
};
这几乎就成功了。非事件操作为绿色,但所选操作具有红色文本,但图标颜色不受影响。当样式不能完全按照您的预期工作时,下一个要查看的地方是源代码,以了解样式在组件中是如何完成的。
下面是 BottomNavigationAction
样式的简化版本(我只包含与控制这两种颜色相关的部分):
export const styles = theme => ({
/* Styles applied to the root element. */
root: {
color: theme.palette.text.secondary,
'&$selected': {
color: theme.palette.primary.main,
},
},
/* Styles applied to the root element if selected. */
selected: {},
});
如果我们根据其结构来建模我们的覆盖,我们就会取得成功。如果将 withStyles
与 MUI v4 一起使用(下面是 v5 示例),最终结果如下所示:
import React from "react";
import Paper from "@material-ui/core/Paper";
import BottomNavigation from "@material-ui/core/BottomNavigation";
import BottomNavigationAction from "@material-ui/core/BottomNavigationAction";
import RestoreIcon from "@material-ui/icons/Restore";
import FavoriteIcon from "@material-ui/icons/Favorite";
import LocationOnIcon from "@material-ui/icons/LocationOn";
import { withStyles } from "@material-ui/core/styles";
const styles = {
root: {
color: "green",
"&$selected": {
color: "red"
}
},
selected: {}
};
class MyBottomNavigation extends React.Component {
render() {
const actionClasses = this.props.classes;
return (
<Paper>
<BottomNavigation value={1} showLabels={true}>
<BottomNavigationAction
classes={actionClasses}
label="Home"
icon={<RestoreIcon />}
/>
<BottomNavigationAction
classes={actionClasses}
label="Course"
icon={<FavoriteIcon />}
/>
<BottomNavigationAction
classes={actionClasses}
label="Authors"
icon={<LocationOnIcon />}
/>
</BottomNavigation>
</Paper>
);
}
}
export default withStyles(styles)(MyBottomNavigation);
下面是使用 styled
而不是 withStyles
的 MUI v5 的等效示例:
import React from "react";
import Paper from "@mui/material/Paper";
import BottomNavigation from "@mui/material/BottomNavigation";
import MuiBottomNavigationAction from "@mui/material/BottomNavigationAction";
import RestoreIcon from "@mui/icons-material/Restore";
import FavoriteIcon from "@mui/icons-material/Favorite";
import LocationOnIcon from "@mui/icons-material/LocationOn";
import { styled } from "@mui/material/styles";
const BottomNavigationAction = styled(MuiBottomNavigationAction)(`
color: green;
&.Mui-selected {
color: red;
}
`);
class MyBottomNavigation extends React.Component {
render() {
return (
<Paper>
<BottomNavigation value={1} showLabels={true}>
<BottomNavigationAction label="Home" icon={<RestoreIcon />} />
<BottomNavigationAction label="Course" icon={<FavoriteIcon />} />
<BottomNavigationAction label="Authors" icon={<LocationOnIcon />} />
</BottomNavigation>
</Paper>
);
}
}
export default MyBottomNavigation;
以下是 Stack Overflow 中我回答过的有关其他 MUI 组件的一些类似问题的其他资源:
关于reactjs - React.js Material-UI 中的 BottomNavigation 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375096/
关于使用索引堆栈在选项卡之间导航以显示相关页面的问题。我这样做是为了保持页面的滚动/状态。这工作正常。我可以通过单击选项卡更改当前显示的页面 - 也可以在每个页面内导航(每个页面都用它自己的导航器包装
我正在尝试使用 BottomNavigationView 创建一个应用程序。我添加了三个 fragment 它只工作一次但是当我尝试从 botton View 应用程序崩溃中重新选择一个项目时。这是我
我试图向用户展示位于 MainActivity 中的 Snackbar RideFragment。但 BottomNavigation 与 Snackbar 重叠,因此 Snackbar 根本不可读/
我已经根据 following thread 实现了一个计数器徽章. 然后我扩展了一下,当通知计数为 0 时从导航项中删除徽章: fun setInboxIcon(count: Int) {
我正在根据 Material Design 尝试 Android 的 BottomNavigationView 实现 但是,在 MainActivity 代码中,我收到了 OnNavigationIt
项目支持RTL;尤其是阿拉伯语。 要求是所有数字都必须以英文格式出现,即使语言选择为阿拉伯语区域设置,我们在任何地方实现它的方式通常是在 TextViews 的情况下使用以下代码: TextView
在我的应用程序中,我有一个带有 BottomNavigation 的主屏幕从 Material 设计。从这些屏幕我希望能够启动其他 fragment ,其中 BottomNavigation被隐藏以便
如何制作BottomNavigation组件粘性?为什么默认情况下不具有粘性? 最佳答案 您可以使用以下 CSS 使 BottomNavigation 粘在屏幕底部: const styles = {
我使用background=ripple在BottomNavigation中制作按压效果,但在我的例子中,MyBottomNavigation颜色是深色的,因此由于波纹效果颜色是灰色的,它看起来变得不
我想在我的项目中设计这个布局: 很多人用 google 搜索 AFIAK 是一些可以在 Android 上设计的库,但我找不到它,我从 Android Material 网站截取了这个屏幕截图。谁能帮
我正在尝试向我的导航栏添加更多高度,当我使用 layout_gravity 中心上的栏更改高度时,它会像我预期的那样阴影,但是当我将其锚定到底部时,高度被覆盖或阴影被重置。 布局: 外
我正在尝试实现 Nagivation来自 Android 架构组件。我能够成功地浏览我的 fragment 。我试图将它附加到我的底部导航,但我无法正确使用它。我可以使用 Navigation.fin
我一整天都在寻找答案,但没有找到适合这个问题的任何解决方案。 我正在寻找一种方法来创建类似于 Instagram 或 PlayKiosk 应用的 BottomNavigation 用法。 fragme
我一直在四处寻找,但找不到有助于解决这个特定问题的答案。我的应用程序有一个自定义的滑入滑出效果,使用方式如下: Intent intent = new Intent(getApplicationCon
我正在尝试从 Material UI 实现 BottomNavigation 组件,但当用户使用浏览器的后退和前进按钮时遇到问题。 问题是,BottomNavigation 组件被配置为在按下导航项按
我有一个显示几个项目的 BottomNavigation,使用此代码我设法在所需的项目处启动 BottomNavigation getSupportFragmentManager().beginTra
所以我不知道如何在 RecyclerView 下的 LinearLayout 中对齐我的底部导航。这些项目是 RecyclerView:
在我的应用程序中,我想显示 CoordinatorLayout 的 BottomNavigation 底部,为此我编写了以下代码:
是否可以通过 NavigationContoller 在 BottomNavigation 控制的 Fragment 之间传递 Parcelable 对象/参数? 这是我的应用程序的流程,用户登录应用
NS 6.5已经发布,有一个新功能:动态创建选项卡和底部导航... 我按照他们的示例进行操作,但似乎不起作用,请在 Playground 上查看下面的代码: https://play.nativesc
我是一名优秀的程序员,十分优秀!