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回收视图是否仍滚动到底部?是。仍滚动至底部这不是默认行为。您知道如何修复此问题吗?