Как узнать, когда фрагмент фрагмента готов из него - PullRequest
0 голосов
/ 26 октября 2018

У меня есть фрагмент, который включает в себя просмотрщик, который включает в себя множество фрагментов.Я называю методы фрагментов, которые находятся в viewpager из внешнего фрагмента.Я могу сделать это без каких-либо проблем, но я сталкиваюсь с проблемой, когда я перехожу к другому фрагменту из фрагментов, которые находятся в viewpager, а затем возвращаюсь, я не могу использовать этот метод, потому что вызывающий метод объект рассматривается как нулевой.

Фазы проблемы в порядке

структура макета

1- Во внешнем фрагменте метод одного из фрагментов видового экрана вызывается без каких-либо проблем.

2- Щелкните по любому элементу в представлении рециркулятора во фрагментах, которые установлены в окне просмотра.

3 - Он направляет пользователя к другому фрагменту.

4 - Вернитесь через popbackstackimmediate ().

5- Первая фаза вызывает проблему с исключением нулевого указателя.

Этот метод реализован во внешнем фрагменте.

private void setPagination() {
    nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            if (v.getChildAt(v.getChildCount() - 1) != null) {
                if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) &&
                        scrollY > oldScrollY) {
                    if (currentPage.equalsIgnoreCase("A"))
                        AFragment.loadMore();
                    else if (currentPage.equalsIgnoreCase("B"))
                        BFragment.loadMore();
                    else if (currentPage.equalsIgnoreCase("C"))
                        CFragment.loadMore();
                    else if (currentPage.equalsIgnoreCase("D"))
                        DFragment.loadMore();
                }
            }
        }
    });
}

Метод LoadMore ()

public void loadMore() {
        if (list_a.size() % 4 == 0) {
            ManagerAll.getInstance().fetchA(id_number, page).enqueue(new Callback<List<A>>() {
                @Override
                public void onResponse(Call<List<A>> call, Response<List<A>> response) {
                    if (response.isSuccessful()) {
                        int before_update = list_a.size();
                        list_a.addAll(response.body());
                        int after_update = list_a.size();
                        adapter.notifyItemRangeInserted(before_update, after_update);
                        page++;
                    }
                }

                @Override
                public void onFailure(Call<List<A>> call, Throwable t) {

                }
            });
        }
}

Я не могу получить доступ к list_a здесь, потому что он генерирует исключение нулевого указателя.Я предполагаю, что это еще не инициализировано после того, как я возвращаюсь от другого фрагмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...