FragmentStatePagerAdapter дает пустые фрагменты после обновления - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть погодный адаптер, чтобы показать погоду, активность разделена на два экрана, одна половина списка (другой адаптер), другая - вкладка с другой вкладкой внутри для прокрутки всех доступных страниц погоды.

После выключения Wi-Fi, чтобы убедиться, что я ничего не получаю, и затем, включив Wi-Fi, чтобы получить погоду, я получаю метод обновления для адаптера, и список обновляется, создаются новые фрагменты, onViewCreatedвызывается, но фрагменты отображаются пустыми и имеют значение только 1 (не может циклически проходить по ним, если их несколько)то есть в Tablayout на той стороне, которая отображает погоду

public class WeatherViewPagerFragment extends Fragment {

private WeatherViewPagerAdapter adapter;
private ViewPager viewpager;
private TabLayout tabLayout;

public static WeatherViewPagerFragment newInstance(){
    return new WeatherViewPagerFragment();
}

@Override
public UniqueInfo getUniqueInfo() {
    return null;
}

@Override
public void update() {
    adapter.rediscoverWeather();
    setPage(0);
    adapter.notifyDataSetChanged();
}

public void setPage(int pageNumber){
    if (pageNumber >=0 && pageNumber < adapter.getCount()){
        viewpager.setCurrentItem(pageNumber, true);
    }
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.weather_view_pager, container, false);
}

private void createAdapter(){
    adapter = new WeatherViewPagerAdapter(getChildFragmentManager());
    viewpager.setAdapter(adapter);
    tabLayout.setupWithViewPager(viewpager);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    viewpager = view.findViewById(R.id.viewpager);
    tabLayout = view.findViewById(R.id.sliding_tabs);
    createAdapter();
}
}

Функция update () для WeatherViewPagerFragment вызывается, когда она предназначена для этого, которая обновляет адаптер, повторно выполняет фрагменты и вызывает onCreateView и onViewCreated,но то, что я вижу, это просто пустой фрагмент, любое предложениеионы, почему это будет происходить?я подумал, что это может быть проблема с фокусом, но мне пока не повезло с его исправлением

...