Null Context In Setuservisiblehint
A message needs to be displayed to the user when a fragment in a ViewPager becomes visible. Currently the call is: // Within a class that extends Fragment @Override public void set
Solution 1:
Better late than never ,I have a little hackish solution ,call setUserVisibleHint()
from onActivityCreated()
method.
privateboolean myIsVisibleToUser;
@OverridepublicvoidsetUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
myIsVisibleToUser=isVisibleToUser;
if (isVisibleToUser && getActivity()!=null) {
MessageUtility.displayMessage(getContext());
}
}
@OverridepublicvoidonActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setUserVisibleHint(myIsVisibleToUser);
}
Solution 2:
It's a bit different approach but more effective solution. Add a new OnPageChangeListenr
to your ViewPager
.
yourPager.setOnPageChangeListener(newViewPager.OnPageChangeListener() {
@OverridepublicvoidonPageScrolled(int i, float v, int i2) {
}
@OverridepublicvoidonPageSelected(int i) {
// Check if i == your fragment's position and display message
MessageUtility.displayMessage(getContext());
}
@OverridepublicvoidonPageScrollStateChanged(int i) {
}
});
Post a Comment for "Null Context In Setuservisiblehint"