Flutter переходит на предыдущую вкладку GNav из кнопкиAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Flutter переходит на предыдущую вкладку GNav из кнопки

Сообщение Anonymous »

Я использую GNav в своем приложении, которое я реализовал для изменения вкладки GNav при нажатии кнопки
Flutter меняет вкладку GNav с кнопки
это помогло мне,
Это мой GNav

Код: Выделить всё

import 'package:flutter/material.dart';
import 'package:food_couriers/constants/colors/app_colors.dart';
import 'package:food_couriers/screens/cart_screen/cart_screen.dart';
import 'package:food_couriers/screens/chat_screen/chat_screen.dart';
import 'package:food_couriers/screens/home_screen/home_screen.dart';
import 'package:food_couriers/screens/profile_screen/profile_screen.dart';
import 'package:google_nav_bar/google_nav_bar.dart';

class BottomNavigationScreen extends StatefulWidget {
const BottomNavigationScreen({super.key});

@override
State createState() => _BottomNavigationScreenState();
}

class _BottomNavigationScreenState extends State {
int _selectedIndex = 0;

void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.white,
body: IndexedStack(
index: _selectedIndex,
children: [
HomeScreen(
onTapProfile: () {
_onItemTapped(1);
},
),
ProfileScreen(
onTapBack: () {},
),
const CartScreen(),
const ChatScreen(),
],
),
bottomNavigationBar: Container(
padding: const EdgeInsets.symmetric(
vertical: 15,
horizontal: 21,
),
decoration: const BoxDecoration(
color: AppColors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(22),
topRight: Radius.circular(22),
),
),
child: GNav(
selectedIndex: _selectedIndex,
onTabChange: _onItemTapped,
backgroundColor: AppColors.white,
tabBackgroundColor: AppColors.secondary,
padding: const EdgeInsets.symmetric(
horizontal: 17,
vertical: 10,
),
tabBorderRadius: 12,
gap: 13,
iconSize: 30,
textStyle: const TextStyle(
fontFamily: 'Poppins',
fontSize: 12,
fontWeight: FontWeight.w500,
height: 15.72 / 12,
),
tabs: const [
GButton(
icon: Icons.home,
iconActiveColor: AppColors.primary,
iconColor: AppColors.secondary,
text: 'Home',
),
GButton(
icon: Icons.person,
iconActiveColor: AppColors.primary,
iconColor: AppColors.secondary,
text: 'Profile',
),
GButton(
icon: Icons.shopping_cart,
iconActiveColor: AppColors.primary,
iconColor: AppColors.secondary,
text: 'Cart',
),
GButton(
icon: Icons.chat,
iconActiveColor: AppColors.primary,
iconColor: AppColors.secondary,
text: 'Chat',
),
],
),
),
);
}
}
Это экран моего профиля

Код: Выделить всё

import 'package:flutter/material.dart';
import 'package:food_couriers/constants/images/images.dart';

class ProfileScreen extends StatefulWidget {
const ProfileScreen({
super.key,
required this.onTapBack,
});

final VoidCallback onTapBack;

@override
State
 createState() => _ProfileScreenState();
}

class _ProfileScreenState extends State  {

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Stack(
children: [
SizedBox(
width: MediaQuery.of(context).size.width,
child: Image.asset(
Images.profilePattern,
alignment: Alignment.topRight,
),
),
SafeArea(
child: Column(
children: [
IconButton(
icon: const Icon(Icons.arrow_back, color: Colors.black),
onPressed: () {},
),
],
),
)
],
),
);
}
}
Я должен задаться вопросом: как мне скрыть GNav, когда я нахожусь на ProfileScreen, и другой вопрос: когда я нажимаю кнопку «Назад» на ProfileScreen, он возвращается к ранее выбранному GNav tab
Я хочу скрыть Gnav на ProfileScreen и вернуться на ранее выбранную вкладку.

Подробнее здесь: https://stackoverflow.com/questions/788 ... rom-button
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»