flutter 如何跳过一个标签在滑动如果标签是“禁用”

8yparm6h  于 2023-06-24  发布在  Flutter
关注(0)|答案(1)|浏览(185)

我有一个TabBar,有4个Tabs。如果任一选项卡的内容是空的,我希望该选项卡获得一个“禁用”状态,无论是onTap滑动。
我已经设法禁用onTap,但还没有能够“跳过”选项卡,如果它被禁用。
例如:如果Ready下没有列表,我想在滑动时从**InProgressArchived******************************************************************************************************************************************************************************************************************

void onTap(int index) {
    if (disabledTabIndex != null) {
      setState(() {
        _controller.index = index == disabledTabIndex
            ? _controller.previousIndex
            : index;
      });
    }
  }
TabBar(
   tabs: [
      Tab("Show all"),
      Tab("InProgress"),
      Tab("Ready"),
      Tab("Archived"),
   ],
   onTap: (int index) => onTap(index),
   controller: _controller,
),
TabBarView(
   controller: controller,
   children: [
      CustomListView(list: unfilteredList),
      CustomListView(list: filteredListByInProgress),
      CustomListView(list: filteredListByReady),
      CustomListView(list: filteredListByArchived),
   ],
),

我已经将NeverScrollableScrollPhysics()添加到TabBarView中,但这将完全禁用滑动**。这不是我想要的结果。我只想**跳过内容。

TabBarView(
   controller: controller,
   physics: controller.index == disabledTabIndex ? NeverScrollableScrollPhysics() : null,
   children: [
      CustomListView(list: unfilteredList),
      CustomListView(list: filteredListByInProgress),
      CustomListView(list: filteredListByReady),
      CustomListView(list: filteredListByArchived),
   ],
),
0ve6wy6x

0ve6wy6x1#

尝试用GestureDetectorInkWell重构你的标签,并将你的func onTap给他们。

相关问题