Что лучший способ состоит в том, чтобы скрыть вкладку в TabNavigator?

Я решил это.

//event listener
 Store.deleteBookmarkFromStorage( e.target.previousElementSibling.previousElementSibling.textContent
  );
  
  //Class Store
  static deleteBookmarkFromStorage(siteName) {
    const bookmarks = Store.getBookmarks();

    bookmarks.forEach(function(bookmark, index) {
      if (bookmark.siteName === siteName) {
        bookmarks.splice(index, 1);
      }
    });
    localStorage.setItem("bookmarks", JSON.stringify(bookmarks));
  }

9
задан ketan 30 September 2015 в 12:11
поделиться

4 ответа

Вы можете сделайте это, используя метод TabNavigator getTabAt (), который возвращает кнопку, составляющую визуальную вкладку. Затем вы можете установить свойство visible этой кнопки. Немного сложно получить эту настройку с привязками, но это выполнимо.

Вы также можете подумать о том, чтобы вместо этого просто отключить вкладку, что можно сделать, установив параметр enabled в соответствующем дочернем элементе TabNavigator (для которого параметр visible не работал).

21
ответ дан 4 December 2019 в 09:14
поделиться

What do you mean by hide? If you actually mean remove, then just take your array that's bound to the data in the TabNavigator, and remove the applicable element from it.

If you want to just have them removed temporarily, create a component of your own that encapsulates the TabNavigator and has an array of removed tabs and an array of actual tabs. Then handle this as you see fit.

1
ответ дан 4 December 2019 в 09:14
поделиться

Я не знаю о TabNavigator, но в других контейнерах вы можете установить для свойства includeInLayout значение false , и оно будет проигнорировано. Вам, вероятно, все еще нужно объединить его с видимым .

0
ответ дан 4 December 2019 в 09:14
поделиться

Возможно, вы захотите ознакомиться с проектом flexlib . У них есть компонент под названием SuperTabNavigator, который добавляет множество функций к базовому Flex TabNavigator, включая скрытие вкладок (я думаю).

Однако, если вам нужно создать свой собственный компонент, это немного сложнее. Следует знать, что «вкладки» на самом деле представляют собой кнопки со специальным стилем, содержащиеся в компоненте TabBar (TabBar тогда содержится в TabNavigator). Что вам нужно сделать, так это подкласс TabNavigator и иметь некоторые свойства в ваших представлениях (например, холсты и т. Д., Которые добавляются в TabNavigator), которые привязаны к свойствам visible и includeInLayout кнопок TabBar.

По сути, у вас будет что-то вроде:

BindingUtils.bindProperty( tabButton, "visible", view, "someProperty" );
BindingUtils.bindProperty( tabButton, "includeInLayout", view, "someProperty" );
1
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: