setSelected method

Future<void> setSelected(
  1. int index, {
  2. bool didUpdateWidget = false,
})

Implementation

Future<void> setSelected(int index, {bool didUpdateWidget = false}) async {
  selected = index;
  notifyListeners();

//    TODO: FEATURE
//    state = SSBottomNavBarState.icon;
//    notifyListeners();
//    await Future<void>.delayed(Duration(milliseconds: 1500));
//    setSizeAndPosition(
//        index: index,
//        size: Offset(keys[index].currentContext.size.width, keys[index].currentContext.size.height),
//        position: (keys[index].currentContext.findRenderObject() as RenderBox).localToGlobal(Offset.zero));
//    await Future<void>.delayed(Duration(milliseconds: 1500));

  if (!didUpdateWidget) {
    selected = index;
    notifyListeners();
  }

  await Future<void>.delayed(Duration(milliseconds: 200));
  setSizeAndPosition(
      index: index,
      size: Offset(
          keys[index].currentContext!.size!.width, keys[index].currentContext!.size!.height),
      position: (keys[index].currentContext!.findRenderObject() as RenderBox)
          .localToGlobal(Offset.zero));

  await Future<void>.delayed(Duration(milliseconds: 200));
  setSizeAndPosition(
      index: index,
      size: Offset(
          keys[index].currentContext!.size!.width, keys[index].currentContext!.size!.height),
      position: (keys[index].currentContext!.findRenderObject() as RenderBox)
          .localToGlobal(Offset.zero));

  state = SSBottomNavBarState.text;
  notifyListeners();

  await Future<void>.delayed(Duration(milliseconds: 100));
  setSizeAndPosition(
      index: index,
      size: Offset(
          keys[index].currentContext!.size!.width, keys[index].currentContext!.size!.height),
      position: (keys[index].currentContext!.findRenderObject() as RenderBox)
          .localToGlobal(Offset.zero));
}