android保存用户自定义排序,android – 如何在方向更改后阻止StaggeredGridLayoutManager中的项目重新排序?...
时间: 2023-12-10 18:38:13 浏览: 140
要保存用户自定义排序,你可以使用SharedPreferences或SQLite数据库来存储排序后的项目列表。当用户对列表进行排序时,你可以将其保存并在下次打开应用程序时加载。
对于阻止StaggeredGridLayoutManager中的项目重新排序,你可以尝试使用以下方法:
1. 在Activity中覆盖onConfigurationChanged方法,并在其中设置LayoutManager的方向。
```java
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
staggeredGridLayoutManager.setOrientation(newConfig.orientation);
}
```
2. 在RecyclerView的Adapter中,通过getItemViewType方法返回固定的值,以确保在方向更改后,RecyclerView中的项目类型保持不变。
```java
@Override
public int getItemViewType(int position) {
return 1;
}
```
3. 在RecyclerView的Adapter中,重写getItemId方法,并返回每个项目的唯一标识符。这将确保在方向更改后,RecyclerView中的项目位置不会重新排序。
```java
@Override
public long getItemId(int position) {
return items.get(position).getId();
}
```
通过以上方法,你可以保存用户自定义排序,并在方向更改后阻止StaggeredGridLayoutManager中的项目重新排序。
阅读全文