在移动应用程序的设计中,横向滚动列表已经成为常见的设计模式之一。Google开发的Material Design风格也不例外。RecyclerView是最新的Android标准视图,是创建各种复杂列表和网格的最佳选择。本文将为您提供在Material Design中使用RecyclerView实现横向列表的方法总结,帮助您快速实现该设计模式的效果。
RecyclerView的横向列表
RecyclerView是Android开发者的摇钱树,它成为了传统的ListView和GridView的有效替代品。实现横向列表使用RecyclerView非常简单,您只需要将其布局方向设置为“横向”,就可以将其转换为横向滚动布局。
<android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal" app:layoutManager="LinearLayoutManager" />
请注意,我们在RecyclerView的xml布局中,将“orientation”属性设置为“horizontal”,这是实现横向列表的关键。
普通列表和横向列表的Adapter
下面的示例代码演示了如何在RecyclerView中创建两个不同的Adapter。一个用于创建普通列表,另一个用于创建横向列表。
-- -------------------- ---- ------- ------ ----- ------------- ------- ------------------------------------------------ - ------- ------------ ---------- ------- ------- --------- ------ --------------------- -------- ------------ --------- - ------------- - -------- -------------- - --------- - -------- --------- ------ ------------ --------------------------- --------- ------- --- --------- - ---- ---- - ------------------------------------------------------------------ ------ ------ --- ------------------- - --------- ------ ---- ------------------------- ------------ ------- --- --------- - ---------------------------------------------- - --------- ------ --- -------------- - ------ ----------------- - ----- ------------ ------- ----------------------- - -------- ------ ----------------- --------- - ---------------- ----- - ---------------------------------- - - -
-- -------------------- ---- ------- ------ ----- ----------------- ------- ---------------------------------------------------- - ------- ------------ ---------- ------- ------- --------- ------ ------------------------- -------- ------------ --------- - ------------- - -------- -------------- - --------- - -------- --------- ------ ------------ --------------------------- --------- ------- --- --------- - ---- ---- - ---------------------------------------------------------------------- ------ ------ --- ------------------- - --------- ------ ---- ------------------------- ------------ ------- --- --------- - ---------------------------------------------- - --------- ------ --- -------------- - ------ ----------------- - ----- ------------ ------- ----------------------- - -------- ------ ----------------- --------- - ---------------- ----- - ---------------------------------- - - -
请注意,这两个Adapter的唯一区别就是它们所创建的布局。每个Adapter均在onCreateViewHolder方法中为不同的布局文件创建ViewHolder。
实现横向列表的LayoutManager
要实现横向列表,我们需要使用一个自定义的LayoutManager。LayoutManager是负责RecyclerView的摆放和计算的类。我们将使用LinearLayoutManager的子类来实现RecyclerView的横向滚动功能。
-- -------------------- ---- ------- ------ ----- ----------------------- ------- ------------------- - ------ ------------------------------- -------- - --------------- - ------ ------------------------------- -------- --- ------------ ------- -------------- - -------------- ------------ --------------- - ------ ------------------------------- -------- ------------ ------ --- ------------- --- ------------ - -------------- ------ ------------- ------------- - --------- ------ ------------------------- ----------------------------- - ------ --- -------------------------------------------------------------- ------------------------------------- - --------- ------ ------------------------- ---------------------------- -- ------------ ------ - ------ --- ---------------------------- ------- - --------- ------ ------------------------- ------------------------------------------- --- - ------ --- ------------------------------ - --------- ------ ------- ----------------------- - ------ ----- - --------- ------ ------- --------------------- - ------ ------ - --------- ------ --- ------------------------ --- --------------------- --------- ------------------ ------ - --- -------- - ------------------------------ --------- ------- -- --------- -- -- - -------------------------------------------- - ------ --------- - ------- ---- ------------------------------------ --- - -- ---------------- -- -- - ------- - ---- ------- - --- ------- --- ---- - - -- - - ---------------- ---- - ---- ----- - -------------- ---------------------------- --------------- ----------------- ------------------- ------------------- --- -------------------------- ------------ -------------- ---------------- - - -
请注意,这里重写了LayoutManager的一些方法,以使其适应横向布局。它还包括一个方法,用于重新安排滚动视图中的所有子项的位置。
结论
在这篇文章中,我们学习了如何在Material Design中使用RecyclerView实现横向列表。我们创建了一个位于RecyclerView中的横向LinearLayout,为RecyclerView创建了两个Adapter,以分别创建普通列表和横向列表。我们还创建了一个自定义的LayoutManager,以便横向滑动RecyclerView。我们希望这篇文章能够帮助您实现Material Design风格的应用程序中横向列表的效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647d97bb968c7c53b08621b8