Я использую CupertinoTabBar в моем приложении флаттера.
Проблема в том, что нижняя панель показывает, когда появляется клавиатура, а это не должно быть. Это нижняя полоса, она всегда должна быть в нижней части.
Я не нашел какого-либо способа или хитрости для этого.
Может быть, кто-нибудь поможет мне найти правильное поведение.
Это вывод моего доктора о трепетании
Резюме врача (чтобы увидеть все подробности, запустите flutter doctor -v):
[✓] Flutter (ведущий канала, v1.6.1-pre.50, в Linux, локаль en_US.UTF-8)
[✓] Android toolchain - разработка для устройств Android (Android SDK версия 28.0.3)
[✓] Android Studio (версия 3.3)
[✓] VS Code (версия 1.33.1)
[✓] Подключенное устройство (1 доступно)
Это единственные опции, разрешенные для cupertinoTabBar:
const CupertinoTabBar({
Key key,
@required this.items,
this.onTap,
this.currentIndex = 0,
this.backgroundColor,
this.activeColor,
this.inactiveColor = CupertinoColors.inactiveGray,
this.iconSize = 30.0,
this.border = const Border(
top: BorderSide(
color: _kDefaultTabBarBorderColor,
width: 0.0, // One physical pixel.
style: BorderStyle.solid,
),
),
})
Вот как поднимается мой CupertinoTabBar при появлении клавиатуры:
Обновление:
Я пытаюсь проверить состояние клавиатуры, так как не показывает cupertinoTabBar, но оно находится внутри CupertinoTabScaffold:
return Scaffold(
body: CupertinoTabScaffold(
tabBuilder: (BuildContext context, int index) {
switch (index) {
case 0: // Home
return CupertinoTabView(
navigatorKey: Undoc3Keys.homeNavigator,
routes: getRoutes(context, store),
onGenerateRoute: handleRoutes,
builder: (BuildContext context) => FeedScreen(),
);
break;
case 1: // Preguntar
return CupertinoTabView(
navigatorKey: Undoc3Keys.askNavigator,
routes: getRoutes(context, store),
onGenerateRoute: handleRoutes,
builder: (BuildContext context) => SearchResultScreen(
arguments: {"askScreen": ""},
),
);
break;
case 2: // Perfil
return CupertinoTabView(
navigatorKey: Undoc3Keys.perfilNavigator,
routes: getRoutes(context, store),
onGenerateRoute: handleRoutes,
builder: (BuildContext context) => ProfileScreen(),
);
break;
default:
}
},
tabBar: Undoc3Keys.keyboardStatus // Here is validation of keyboard.
? CupertinoTabBar( // A try for making invisible bar.
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(
Icons.radio_button_unchecked,
color: Colors.transparent,
),
backgroundColor: Colors.transparent),
BottomNavigationBarItem(
icon: Icon(
Icons.radio_button_unchecked,
color: Colors.transparent,
),
backgroundColor: Colors.transparent)
],
backgroundColor: Colors.transparent.withOpacity(0.0),
inactiveColor: Colors.transparent,
activeColor: Colors.transparent,
border: Border(
top: BorderSide(
color: Colors.transparent,
width: 0.0, // One physical pixel.
style: BorderStyle.none,
),
),
)
: _buildTabBar(),
),
);
А как выглядит случай появления клавиатуры: