小编and*_*ner的帖子

如何在更改屏幕方向android时保留回收器视图的选定项目?

我想在屏幕方向改变时保留 RecyclerView 所选项目的状态,但每当我更改方向时,所选项目不会保留其状态。
因此,我将所选项目的位置和方向更改保存在onResume().
我获取了位置,并通过使用 RecyclerView 的 getChildAt() 方法尝试获取该项目的视图,但它返回 null。

我遇到了严重的麻烦,请帮助。

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        SelectedMyPosition= savedInstanceState.getInt("selectedItemPosition");
        check=savedInstanceState.getString("demo");
    }
    setContentView(R.layout.activity_main);
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);

    objectRecyclerView = (RecyclerView) findViewById(R.id.RecyclerView);
    objectRecyclerView.setHasFixedSize(true);
    objectRecyclerView.setItemAnimator(new DefaultItemAnimator());


    mAdapter = new MyAdapter(TITLES, ICONS, NAME, EMAIL, PROFILE, this,SelectedMyPosition);

    mlayoutmanager = new LinearLayoutManager(this);

    objectRecyclerView.setLayoutManager(mlayoutmanager);
    objectRecyclerView.setAdapter(mAdapter);

 @Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    if (SelectedMyPosition >= 0) {
        View v=objectRecyclerView.getChildAt(SelectedMyPosition);
        if(v!=null)
        {
            v.setSelected(true);
        }
            View …
Run Code Online (Sandbox Code Playgroud)

android orientation-changes android-recyclerview

5
推荐指数
0
解决办法
1243
查看次数