หากต้องการใช้เงาของกล่องกับ a TabBar
in Flutter คุณสามารถล้อมมันไว้ใน a Container
และใช้ BoxDecoration
คุณสมบัติได้ นี่คือตัวอย่าง:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
title: Text('TabBar with Shadow'),
bottom: TabBar(
tabs: [
Tab(text: 'Tab 1'),
Tab(text: 'Tab 2'),
Tab(text: 'Tab 3'),
],
),
),
body: TabBarView(
children: [
Container(color: Colors.red),
Container(color: Colors.green),
Container(color: Colors.blue),
],
),
),
);
}
}
หากคุณต้องการเพิ่มเอฟเฟกต์เงาให้กับ TabBar
คุณสามารถล้อม TabBar
a Container
และใช้คำสั่ง BoxDecoration
:
Container(
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 7,
offset: Offset(0, 3), // changes position of shadow
),
],
),
child: TabBar(
tabs: [
Tab(text: 'Tab 1'),
Tab(text: 'Tab 2'),
Tab(text: 'Tab 3'),
],
),
),
ในตัวอย่างนี้ BoxShadow
ใช้เพื่อสร้างเอฟเฟกต์เงาให้กับไฟล์ TabBar
. คุณสามารถปรับแต่งสี รัศมีการกระจาย รัศมีความเบลอ และออฟเซ็ต เพื่อให้ได้เงาที่ต้องการ
อย่าลืมปรับคุณสมบัติของเงาให้ตรงกับความต้องการในการออกแบบของคุณ
โปรดทราบว่าการใช้เงาอาจไม่ทำงานหากคุณ AppBar
ใช้ระดับความสูงอยู่แล้ว ในกรณีเช่นนี้ คุณอาจจำเป็นต้องใช้วิดเจ็ตแบบกำหนดเองหรือปรับการออกแบบเพื่อรองรับเอฟเฟกต์ทั้งสอง