код для видимости пользователя в андроидной деятельности

107
7

 public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && isResumed()) {

new FacultySyncerBg().execute("");
}
}

Это у меня для фрагмента, как я могу использовать его в действии. Если я скопировал тот же код в действии, я получаю ошибку на этом этапе, пожалуйста, пришлите мне решение.

спросил(а) 2016-12-27T09:08:00+03:00 3 года, 10 месяцев назад
1
Решение
70

SetUserVisibleHint (boolean) может использоваться только в Fragment, а не в Activity https://developer.android.com/reference/android/app/Fragment.html#setUserVisibleHint(boolean)

Настройте подсказку для системы о том, отображается ли этот фрагмент интерфейса пользователя пользователю. Эта подсказка по умолчанию имеет значение true и постоянна для сохранения и восстановления состояния экземпляра экземпляра.

Приложение может установить это значение в false, чтобы указать, что пользовательский интерфейс фрагмента прокручивается вне видимости или в противном случае не отображается непосредственно пользователю. Это может использоваться системой для приоритизации операций, таких как обновление жизненного цикла фрагмента или поведение порядка загрузки.

ответил(а) 2016-12-27T09:17:00+03:00 3 года, 10 месяцев назад
42

Do like this

public class MainActivity extends FragmentActivity {

ViewPager viewPager;
CustomPagerAdapter adapter;
ArrayList<Fragment> fragments = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

viewPager = (ViewPager)findViewById(R.id.viewPager);
adapter = new CustomPagerAdapter(getSupportFragmentManager(),Fragments());
viewPager.setAdapter(adapter);

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {

if (position == 0)
{
DemoFragment1 fragment1 = (DemoFragment1) fragments.get(0);
fragment1.setUserVisibleHint(true);
}

}

@Override
public void onPageScrollStateChanged(int state) {

}
});
}

public ArrayList<Fragment> Fragments()
{
fragments.clear();

fragments.add(new DemoFragment1());
fragments.add(new DemoFragment2());
fragments.add(new DemoFragment3());

return fragments;
}

}

ответил(а) 2016-12-27T09:22:00+03:00 3 года, 10 месяцев назад
41

Вы пытаетесь вызвать метод Fragment из Activity, этот метод доступен только для фрагментов.

Согласно документам -

setUserVisibleHint (boolean isVisibleToUser) - Установить подсказку системе о том, является ли этот фрагмент пользовательского интерфейса в настоящее время видимым для пользователя.

ответил(а) 2016-12-27T09:17:00+03:00 3 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема