Как изменить видимость родительского фрагмента от дочернего фрагмента? - PullRequest
0 голосов
/ 08 июня 2019

Я использую вложенный фрагмент, иерархия которого выглядит следующим образом: MainActivity> родительский фрагмент> дочерний фрагмент.Основная активность содержит несколько родительских фрагментов, таких как фрагмент 10, фрагмент 11, фрагмент 12.и на родительском фрагменте провести несколько фрагментов, таких как фрагмент, фрагмент, указатель, фрагмент.На фрагменте 10 в относительном порядке, который блокирует просмотр списка, просмотрщик показывает информацию, если я не получаю данные.Во фрагменте, который я обработал, получая от API, если относительная задержка данных hv на фрагменте 10 должна быть установлена ​​как видимая.

Я пытаюсь использовать некоторый код в stackoverflow, но он все еще дает мне ошибку,

первый код, который я тестировал

fragmentKelas10 = (fragmentKelas10) getParentFragment();
fragmentKelas10.getView().findViewById(R.id.nodata).setVisibility(View.GONE);

второй

fragmentKelas19 parentFrag = ((fragmentKelas10)fragmentKompetensiInti.this.getParentFragment());
parentFrag.setVisibilityNoData(View.GONE);

третий

(fragmentkelas10 getparentfragment()).setvisivity(View.GONE);

и на моем родительском фрагменте я добавляю открытый метод

public void setVisibilityNoData(int visibility){
        nodata.setVisibility(visibility);
    }

* nodata islativelayout

весь приведенный выше код, который я пытался вернуть сообщение об ошибке, подобное этому

Попытка вызвать виртуальный метод 'android.view.View edu.stikom.molearn.fragment.фрагментKelas10.getView () 'для ссылки на пустой объект

1 Ответ

0 голосов
/ 08 июня 2019

Make Действие или фрагмент, который вы хотите вернуть, для реализации OnFragmentInteractoinLister, и когда никакие данные не вызываются, они могут вернуться к этому фрагменту или действию, и вы можете скрыть все, что захотите.

private OnFragmentInteractionListener mListener;
      public void onNoData() {
            if (mListener != null) {
                mListener.onFragmentInteraction();
            }
        }
    @Override
        public void onAttach(Context context) {
            super.onAttach(context);
            if (context instanceof OnFragmentInteractionListener) {
                mListener = (OnFragmentInteractionListener) context;
            } else {
                throw new RuntimeException(context.toString()
                        + " must implement OnFragmentInteractionListener");
            }
        }

        @Override
        public void onDetach() {
            super.onDetach();
            mListener = null;
        }

        public interface OnFragmentInteractionListener {

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