横向RecyclerView的使用,可替代Gallery

KaelLi 2017年7月24日18:02:31
评论
10,754

RecyclerView的线性布局,可以垂直竖向排列当然也可以水平横向排列了。可能有很多Android开发年龄不长的人根本就不知道Gallery这个控件,因为在Android 16(就是Android4.1)版本之后被Deprecated掉了。但Gallery曾经确实一个很常见的控件。而我们实现一个横向的RecyclerView则可以代替Gallery。

代码实现就简单来一些。Item的布局代码就不写了,很简单的一个纵向的LinearLayout,上面是ImageView,下面是一个TextView。全部代码,跟纵向的相比,只有一个差别,那就是在设置LayourManager的时候,使用了

new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true)

来获取一个横向的线性LayoutManager。

其中,最后一个boolean类型的参数,决定了item的排列顺序:如果为true,则是倒序,即最后一个item排在最前面。当然了,默认情况下,你可以不使用这个参数,跟该参数设置为false是一样的正序排列。

public class HorizontalRecyclerViewDemo extends AppCompatActivity {
    private RecyclerView recyclerView;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_horizontal_recyclerview_demo);
        recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));
        recyclerView.setAdapter(new MyAdapter());
    }


    class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
        @Override
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return new MyAdapter.ViewHolder(LayoutInflater.from(HorizontalRecyclerViewDemo.this).inflate(R.layout.item_horizontal_recyclerviedw, parent, false));
        }

        @Override
        public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
            holder.textView.setText("第" + position + "元素");
        }

        @Override
        public int getItemCount() {
            return 10;
        }

        class ViewHolder extends RecyclerView.ViewHolder {
            private TextView textView;
            public ViewHolder(View itemView) {
                super(itemView);
                textView = (TextView)itemView.findViewById(R.id.textView);
            }
        }
    }
}

最后的运行结果如下图:

横向RecyclerView的使用,可替代Gallery

(鼓掌,终于学会了自己弄个gif动画)

KaelLi
  • 本文由 发表于 2017年7月24日18:02:31
  • 转载请务必保留本文链接:https://www.kaelli.com/6.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: