我有一个列表片段。
当用户单击列表项时,我将列表片段替换为新闻片段。当用户返回时(使用addToBackStack
),列表滚动到顶部。
当用户按下列表项时,我希望我的列表保持相同的滚动级别。这可能吗?我怎样才能得到这个结果?
这是我替换列表片段的代码:
myFragment myFragment = new myFragment();
myFragment.setArguments(bundle);
FragmentTransaction ft = getActivity().getSupportFragmentManager()
.beginTransaction();
ft.replace(R.id.phone_container, myFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
我已经尝试过这样的事情,但我没有得到任何结果:
public void onResume() {
super.onResume();
Log.i("log", "onResume()");
setListAdapter(adapter);
if(index!=-1){
this.getListView().setSelectionFromTop(index, top);
}
}
public void onPause() {
super.onPause();
Log.i("log", "onPause()");
try {
index = this.getListView().getFirstVisiblePosition();
View v = this.getListView().getChildAt(0);
top = (v == null) ? 0 : v.getTop();
} catch (Throwable t) {
t.printStackTrace();
}
}