我的主要活动中的ViewPager中有3个标签。当我从选项卡2返回选项卡1时,我想滚动到顶部并将焦点放在第一个EditText中。但是,Tab 1的onResume
片段方法没有被调用,所以在哪里可以设置视图?谢谢。
以下是我在Activity中设置onPageChangeListener
的代码。
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
getActionBar().setSelectedNavigationItem(position);
mPagerAdapter.getItem(position).onResume(); // trying to call onResume
}
});
这是我的片段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;
}
我的片段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);
}
});
}
答案 0 :(得分:0)
你有Ontabselcted方法或onpageselected方法,你可以滚动到顶部。
答案 1 :(得分:0)
覆盖此回调。我必须检查以确保我的视图为非null,以避免首次加载时出现问题。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) { }
else { }
}