Какое событие запускается при выборе фрагмента вкладки
Я использую фрагменты вкладок в действии, и панель действий содержит вкладки.
Что я хочу сделать, так это то, что всякий раз, когда фрагмент появляется (или снова появляется) в представлении (выбранном пользователем), я начинаю что-то делать. Я не могу использовать onResume
фрагмента в этом случае, так как все вкладки никогда не "приостанавливаются", когда пользователь выбирает другую вкладку, поэтому onResume
это не называется
Я могу использовать два следующих события из хостинга, но я не хочу их, так как я ожидаю фрагмент должен знать эту логику самостоятельно и выполнять эту задачу. Есть идеи? ТКС.
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
3 ответов
попробуйте setUserVisibleHint () во фрагменте, как описано в ответ. Когда фрагмент находится на выбранной вкладке, setUserVisibleHint() будет вызываться с true, а когда фрагмент не является выбранной вкладкой, setUserVisibleHint () будет вызываться с false. Это работает для меня, используя библиотеку поддержки.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser)
Log.d("MyFragment", "Fragment is visible.");
else
Log.d("MyFragment", "Fragment is not visible.");
}
можно переопределить setUserVisibleHint(boolean isVisibleToUser)
или
onHiddenChanged (boolean hidden)
метод.
в случае
setUserVisibleHint(boolean isVisibleToUser)
,isVisibleToUser=true
когда фрагмент виден иisVisibleToUser=false
когда фрагмент скрыта.в случае
onHiddenChanged (boolean hidden)
,hidden:True
если
фрагмент теперь скрыт, ложен, если не виден.
Я не тестировал это, но я считаю, что вы можете использовать onHiddenChanged
метод этот фрагмент
документы:
вызывается, когда скрытое состояние (возвращаемое isHidden() фрагмента изменилось.
http://developer.android.com/reference/android/app/Fragment.html#onHiddenChanged%28boolean%29