我有一个主屏幕,底部有一个带有4个栏的标签栏。现在我要关注第一个标签栏。
第一个选项卡栏中显示了不同的类别,例如。如您在屏幕快照中看到的,有2个类别:
1)类别1(越野摩托车,道路和配件) 2)热门类别
现在,当我单击类别1中的任何一个时,我希望在底部显示选项卡栏(4个选项卡栏),但是当我打开热门类别时,我不需要该选项卡栏。
所以我被困在这里。
下面是我的代码段。
Scaffold(
backgroundColor: Colors.white,
body: GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: SafeArea(
top: true,
child: SizedBox.expand(
child: PageView(
physics: new NeverScrollableScrollPhysics(),
controller: _pageController,
onPageChanged: (index) {
setState(() => currentIndex = index);
},
children: <Widget>[
Products(),
News(),
Service(),
Events(),
],
),
),
),
),
floatingActionButton: FloatingActionButton(
elevation: 0,
child: Image.asset('assets/icons/bottom_center.png'),
backgroundColor: Colors.transparent,
focusElevation: 10,
disabledElevation: 10,
highlightElevation: 10,
onPressed: () {
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return WorldCategories();
}));
},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: BottomNavigationBar(
currentIndex: currentIndex,
onTap: (index) {
setState(() {
currentIndex = index;
_pageController.jumpToPage(index);
});
},
items: [
BottomNavigationBarItem(
icon: Icon(Icons.ac_unit), title: Text("A")),
BottomNavigationBarItem(
icon: Icon(Icons.ac_unit), title: Text("X")),
BottomNavigationBarItem(
icon: Icon(Icons.ac_unit), title: Text("Y")),
BottomNavigationBarItem(
icon: Icon(Icons.ac_unit), title: Text("Z")),
]),
);
,并且floatActionButton设置在第二个屏幕的顶部。
答案 0 :(得分:0)
想法是您可以将GestureDetector用于“热门类别”文本,然后点击将其重定向到所需的页面。
GestureDetector(
onTap: () async {
// here you make your navigation for your desired page
Navigator.push(
context,
MaterialPageRoute(builder: (context) => youPage()),
);
},
child: Padding(
child: Text(
'Populat Categoreies',
),
))
答案 1 :(得分:0)
在产品内部添加两个布局,单击摩托车越野赛时,隐藏第一个布局并显示摩托车越野赛布局,并单击流行类别时 进行
之类的页面导航var tokenDescriptor = new SecurityTokenDescriptor()
{
Subject = new ClaimsIdentity(new System.Security.Claims.Claim[]
{
new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.NameIdentifier,userFromRepo.Id.ToString()),
new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name,userFromRepo.FullName)
}),
Expires = DateTime.Now.AddHours(12),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature)
};