【问题标题】:flutter, RenderBox was not laid out: RenderRepaintBoundary#4de33 relayoutBoundary=up14 NEEDS-PAINT颤动,未布置 RenderBox:RenderRepaintBoundary#4de33 relayoutBoundary=up14 NEEDS-PAINT
【发布时间】:2021-01-06 17:57:50
【问题描述】:

我用tabBar

我想在选择选项卡时更改 appBar 标题,但出现错误。

我得到错误的代码。

  Scaffold(
    appBar: AppBar(
      leading: IconButton(
        icon: Icon(Icons.clear, color: Colors.black),
        onPressed: () {
          Navigator.pop(context);
        },
      ),
      title: TabBarView(
        children: [Text("Album"), Text("사진"), Text("동영상")],
      ),
      backgroundColor: Colors.white,
    ),
    bottomNavigationBar: TabBar(
      tabs: [
        Tab(text: "앨범"),
        Tab(text: "사진"),
        Tab(text: "동영상"),
      ],
      labelColor: Colors.black,
      indicatorColor: Colors.black,
      unselectedLabelColor: Colors.black26,
    ),
  ),

如果我去掉 appBar title,我就不会出错。 如何解决这个问题?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可以添加TabControllerlistener,这样每当您切换选项卡时,setState() 就会启动并且appBar 标题会发生变化。

    class MyHomePage extends StatefulWidget {
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
      TabController _controller;
      final List<Tab> _tab = [new Tab(text: "First",), Tab(text: "Second",), Tab(text: "Third",)];
      var _currentTab;
    
      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        _controller = new TabController(length: _tab.length, vsync: this);
        _currentTab = _tab[0];
        _controller.addListener(_selectedTab);
      }
    
      void _selectedTab() {
        setState(() {
          _currentTab = _tab[_controller.index];
        });
    }
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: new Text(_currentTab.text),
          ),
          bottomNavigationBar: TabBar(controller: _controller,tabs: _tab),
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2020-05-08
      • 1970-01-01
      • 2022-11-29
      • 2021-11-18
      相关资源
      最近更新 更多