علامات التبويب مع شريط تنقل
جزء من قسم القوائم والشاشات في رحلة Flutter على Coddy. الدرس 23 من 33.
تحتفظ كثير من التطبيقات بصفحاتها الرئيسية في تبويبات على طول أسفل الشاشة. يرسمها NavigationBar؛ وتضعه في bottomNavigationBar: الخاص بـ Scaffold.
NavigationBar(
selectedIndex: index,
onDestinationSelected: (int i) {
setState(() {
index = i;
});
},
destinations: const [
NavigationDestination(icon: Icon(Icons.home), label: 'Home'),
NavigationDestination(icon: Icon(Icons.settings), label: 'Settings'),
],
)كل NavigationDestination هو تبويب واحد، وله أيقونة وتسمية. يحدد selectedIndex التبويب المميز، بدءًا من 0. عند النقر على تبويب، يحصل onDestinationSelected على فهرسه.
لا يتذكر الشريط التبويب من تلقاء نفسه: احتفظ بـ index في الحالة وغيّره باستخدام setState. يعرض المتن الصفحة الخاصة بذلك الفهرس، وهنا pages[index] من قائمة عناصر واجهة المستخدم.
التحدي
سهليحتوي الشريط على ثلاثة ألسنة، لكن النقر عليها لا يفعل شيئًا. أضف onDestinationSelected: لكي يُميَّز اللسان الذي تنقر عليه وتظهر صفحته: Favorites page لـ Favorites، وSettings page لـ Settings.
جرّب بنفسك
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
int index = 0;
final List<Widget> pages = const [
Center(child: Text('Home page')),
Center(child: Text('Favorites page')),
Center(child: Text('Settings page')),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('My App')),
body: pages[index],
bottomNavigationBar: NavigationBar(
selectedIndex: index,
destinations: const [
NavigationDestination(icon: Icon(Icons.home), label: 'Home'),
NavigationDestination(icon: Icon(Icons.favorite), label: 'Favorites'),
NavigationDestination(icon: Icon(Icons.settings), label: 'Settings'),
],
),
);
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس القوائم والشاشات
1قوائم قابلة للتمرير
قائمة قابلة للتمريرعناصر القائمةالبداية والنهايةاضغط على عنصر قائمةفواصل بين الصفوف6علامات التبويب والأدراج والتمرير بالسحب
علامات التبويب مع شريط تنقلأيقونات ممتلئة لعلامة التبويب المفتوحةدرج جانبياسحب للحذفالتراجع عن السحبتدرّب بنفسك: مترجم Flutter عبر الإنترنت