横向listview的最佳实现——RecycleListView

来源:互联网 发布:潮州美工培训 编辑:程序博客网 时间:2024/06/08 06:03

横向listview的最佳实现——RecycleListView

转载注明出处:http://blog.csdn.net/sange77/article/details/73753037

前些天,要写一个横向的列表,想着是将平时竖向的listview 横着来弄,挺麻烦的。后来,发现RecycleListView这货就可以实现,体验效果也是很好!

看效果

效果图

上代码

  • gradle 中引用
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
  • Activity
public class CustomViewActivity extends Activity {    private RecyclerView recyclerView;    private MyRecyclerViewAdapter mAdapter = new MyRecyclerViewAdapter();    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_custom_view);        initView();    }    private void initView() {        recyclerView = (RecyclerView) findViewById(R.id.rv_custom_view);        recyclerView.setAdapter(mAdapter);        LinearLayoutManager llm = new LinearLayoutManager(this);        llm.setOrientation(LinearLayoutManager.HORIZONTAL);// 设置为横向的布局        recyclerView.setLayoutManager(llm);        recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.HORIZONTAL));// 设置分割线    }

注意:LinearLayoutManager.HORIZONTAL要和DividerItemDecoration.HORIZONTAL保持一直,才会有正常的分割线效果

  • Activity XML
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_horizontal">    <android.support.v7.widget.RecyclerView        android:id="@+id/rv_custom_view"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout>
  • MyRecyclerViewAdapter
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyViewHolder> {    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclerview,parent,false);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(MyViewHolder holder, int position) {    }    @Override    public int getItemCount() {        return 9;    }    class MyViewHolder extends RecyclerView.ViewHolder{        public MyViewHolder(View itemView) {            super(itemView);        }    }}
  • item_recyclerview
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="wrap_content"    android:layout_height="wrap_content">    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="测试文字"        android:textSize="18sp"        android:textStyle="bold"/>    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="这是详情内容....."/></LinearLayout>

item 要不要适应全屏 控制大小, 主要改item_recyclerview.xml中根布局的android:layout_width和android:layout_height
ok, 就这么多!

转载注明出处:http://blog.csdn.net/sange77/article/details/73753037

原创粉丝点击