0

我正在创建一个应用程序,用户在其中创建带有图像的元素并将它们显示为列表。它看起来像 Google Keep,其中创建的元素高度不同但宽度相同,分布在两列中。创建元素的顺序很重要,必须以这种方式从上到下排列。如图所示,每个数字代表元素的创建顺序,它不是按照预期的方式排序的。

交错视图

有什么方法可以定义元素的排序方式吗?我想订购它们:

1 2

3 4

5

等等。

这是我初始化 RecyclerView、适配器和布局管理器的代码片段:

RecyclerView recyclerView = findViewById(R.id.recyclerView);
AdapterRecyclerView adapterRecyclerView = new AdapterRecyclerView(getContext(), list);
recyclerView.setAdapter(adapterRecyclerView );
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);

我已经尝试过

staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);

它没有用,我也尝试过

staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);

但它没有显示任何内容,只是一个空白布局。

编辑:任何其他方式都可以做到这一点,图书馆,另一个想法等。

4

1 回答 1

0

您可以尝试在指示位置的元素上设置一个值并在将其设置到适配器之前对列表进行排序。我建议您使用 long 值并在创建对象时使用 System.currentTimeMillis() 设置它,这样您就可以确保该值是唯一的,并且会准确指示创建时间。

于 2018-04-21T13:34:55.673 回答