I have 3 tabs in a ViewPager in my main activity. When I return to Tab 1 from Tab 2, I'd like to scroll to the top and put focus in the first EditText. However, Tab 1's onResume
fragment method is not being called, so where can I set the view? Thanks.
Here is the code in my Activity where I set the onPageChangeListener
.
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
getActionBar().setSelectedNavigationItem(position);
mPagerAdapter.getItem(position).onResume(); // trying to call onResume
}
});
This is my Fragment's onCreate
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(
R.layout.fragment_new_grade_calc, container, false);
context = this.getActivity();
bindAll(); // map ScrollView and other views as Java Objects
setListeners(); // set listeners for objects
if(savedInstanceState != null){
setRestoredViews(savedInstanceState);
} else
setInitialViews();
return rootView;
}
My Fragment's onResume
@Override
public void onResume(){
super.onResume();
final ScrollView sv = (ScrollView) rootView.findViewById(R.id.scrollview_new_grade);
// ^^this is what gets the NullPonterException
sv.post(new Runnable() {
@Override
public void run() {
sv.fullScroll(ScrollView.FOCUS_UP);
}
});
}