Android 屏幕打开时,RecyclerView滚动至底部的屏幕
我有一个带有回收视图的Android 屏幕打开时,RecyclerView滚动至底部的屏幕,android,android-recyclerview,Android,Android Recyclerview,我有一个带有回收视图的片段。加载屏幕时,它会自动滚动到RecyclerView的末尾。如何禁用此功能 代码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_slee
片段
。加载屏幕时,它会自动滚动到RecyclerView
的末尾。如何禁用此功能
代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_sleep_month, container, false);
tfSegoeui = Typeface.createFromAsset(getResources().getAssets(), "fonts/segoeui.ttf");
tfSegoeuiBold = Typeface.createFromAsset(getResources().getAssets(), "fonts/SEGOEUIB.TTF");
fabAdd = (FloatingActionButton) rootView.findViewById(R.id.fab);
fabAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getActivity(), AddSleepActivity.class);
getActivity().startActivityForResult(i, REQUEST_CODE);
}
});
recyclerCategoryList = new ArrayList<>();
recyclerView = (RecyclerView)rootView.findViewById(R.id.recycler_view);
mAdapter = new RecyclerSleepAdapter(recyclerCategoryList);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
prepareListData();
}
private void prepareListData() {
//recyclerCategoryList = new ArrayList<>();
SleepDataModel listData = new SleepDataModel("Fri,Jan 7 11.28PM - 7.00AM",75,"7 Hrs 32 Mins");
recyclerCategoryList.add(listData);
listData = new SleepDataModel("Thu,Jan 6 11.00PM - 5.45AM",30,"6 Hrs 45 Mins");
recyclerCategoryList.add(listData);
listData = new SleepDataModel("Wed,Jan 5 10.50PM - 7.00AM", 60,"8 Hrs 10 Mins");
recyclerCategoryList.add(listData);
listData = new SleepDataModel("Tue,Jan 4 10.00PM - 5.00AM",50, "5 Hrs 30 Mins" );
recyclerCategoryList.add(listData);
listData = new SleepDataModel("Mon,Jan 3 9.50PM - 6.00AM",50, "7 Hrs 15 Mins" );
recyclerCategoryList.add(listData);
mAdapter.notifyDataSetChanged();
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment\u sleep\u month,container,false);
tfSegoeui=Typeface.createFromAsset(getResources().getAssets(),“font/segoeui.ttf”);
tfSegoeuiBold=Typeface.createFromAsset(getResources().getAssets(),“font/SEGOEUIB.TTF”);
fabAdd=(FloatingActionButton)rootView.findViewById(R.id.fab);
fabAdd.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent i=新的Intent(getActivity(),AddSleepActivity.class);
getActivity().startActivityForResult(i,请求代码);
}
});
recyclerCategoryList=新的ArrayList();
recyclerView=(recyclerView)rootView.findviewbyd(R.id.recycler\u视图);
mAdapter=新回收商leepadapter(回收商分类列表);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getActivity().getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
prepareListData();
}
私有void prepareListData(){
//recyclerCategoryList=新的ArrayList();
SleepDataModel listData=新的SleepDataModel(“1月7日星期五下午11:28-上午7:00”,75,“7小时32分钟”);
recyclerCategoryList.add(listData);
listData=新的SleepDataModel(“1月6日星期四下午11:00-上午5:45”,30,“6小时45分钟”);
recyclerCategoryList.add(listData);
listData=新的SleepDataModel(“1月5日星期三下午10:50-7:00”,60,“8小时10分钟”);
recyclerCategoryList.add(listData);
listData=新的SleepDataModel(“1月4日星期二晚上10:00-上午5:00”,50,“5小时30分钟”);
recyclerCategoryList.add(listData);
listData=新的SleepDataModel(“1月3日星期一下午9:50-6:00”,50,“7小时15分钟”);
recyclerCategoryList.add(listData);
mAdapter.notifyDataSetChanged();
}
尝试添加recyclerView.smoothScrollToPosition(0)调用notifyDataSetChanged()
后,这是因为您在设置adaper后填充了数据列表,并且recyclerview是最后添加的一行。尝试在mAdapter=new recyclerslepadapter(recyclerCategoryList)之前调用prepareListData()
代码>
当然,从prepareListData()中删除这一行:mAdaper.notifyDataSetChanged
由于此时的适配器为空@VygintasB请参阅更新的问题mAdapter。notifyDataSetChanged()
在prepareListData()之后初始化mAdapter
时引发异常
被调用。@JasmineThomas回收视图是否仍滚动到底部?是。仍滚动至底部这不是默认行为。您知道如何修复此问题吗?