Связь дочернего фрагмента с родительским фрагментом
В моем дочернем фрагменте у меня есть Recyclerview, и у меня есть макет Appbar в родительском фрагменте. Когда первый элемент Recyclerview виден, мне нужно обновить макет панели приложения в моем родительском фрагменте
Мой интерфейс
public interface OnListFirstItemVisibleListener {
public void sendDataToFragmentOnFirstItemVisible(boolean data, int dy);
}
в классе «Детский фрагмент»
public class MyChildFragment extends Fragment{
private OnListFirstItemVisibleListener mListFirstItemVisibleListener;
.............
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mListFirstItemVisibleListener=(OnListFirstItemVisibleListener) new ParentFragment();
return view;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if(mLinearLayoutManager.findFirstCompletelyVisibleItemPosition()==0&&mListFirstItemVisibleListener != null){
mListFirstItemVisibleListener.sendDataToFragmentOnFirstItemVisible(true,dy);
}else{
mListFirstItemVisibleListener.sendDataToFragmentOnFirstItemVisible(false,dy);
}
}
В классе родительского фрагмента
Я реализовал интерфейс
public class MyParentFragment extends Fragment implements OnListFirstItemVisibleListener{
............
@Override
public void sendDataToFragmentOnFirstItemVisible(boolean data, int dy) {
if (dy < 0&&data==true)
mAppBarLayout.setExpanded(true);
}
}
Но я получаю макет Appbar как ноль
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.AppBarLayout.setExpanded(boolean)' on a null object
Куда я иду не так?