1

基本的なレイアウトをコーディングしたときにいくつか問題がありました。つまり、インデックスが 2 つ離れたカードを選択すると、コンソールに通知が表示され、特定のウィジェットの開始時に機能の各タブに表示されることがわかりました。 、選択した 1 つのタブを更新する代わりに、隣接するタブを更新し、最後にターゲットのタブを更新します。以下のコードで写真を投稿し、何が問題なのか教えてください! :)

class HomePage extends StatefulWidget {
  HomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _HomeScreen createState() => _HomeScreen();
}

class _HomeScreen extends State<HomePage> with TickerProviderStateMixin {
  TabController controllerInMain;

  @override
  void initState() {
    super.initState();
    controllerInMain = TabController(length: 5, vsync: this, initialIndex: 2);
    controllerInMain.addListener(() {
      _handleTabSelection();
    });
  }

  void _handleTabSelection() {
    setState(() {});
  }

  @override
  void dispose() {
    controllerInMain.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          "Managly",
          style: TextStyle(color: Colors.black),
        ),
      ),
      resizeToAvoidBottomPadding: false,
      body: SafeArea(
        child: TabBarView(
          children: <Widget>[
            MenuTab(),
            OrdersTab(),
            StatisticsTab(),
            EmployeeTab(),
            TableTab(),
          ],
          controller: controllerInMain,
        ),
      ),
      bottomNavigationBar: TabBar(
        controller: controllerInMain,
        indicatorColor: Theme.of(context).primaryColor,
        tabs: <Tab>[
          Tab(
            icon: Icon(
              Icons.restaurant_menu,
              color: Colors.amber,
            ),
          ),
          Tab(
            icon: Icon(
              Icons.receipt_long,
              color: Colors.amber,
            ),
          ),
          Tab(
            icon: Icon(
              Icons.insights,
              color: Colors.amber,
            ),
          ),
          Tab(
            icon: Icon(
              Icons.group,
              color: Colors.amber,
            ),
          ),
          Tab(
            icon: Icon(
              Icons.weekend,
              color: Colors.amber,
            ),
          ),
        ],
      ),
    );
  }
}

パネル UI

コンソール出力

4

0 に答える 0