安卓的那些事儿-android之RecyclerView的使用,实现列表横向滚动
来源:互联网 发布:免费扫描软件 编辑:程序博客网 时间:2024/05/20 13:37
《安卓的那些事儿》
方便自己记忆,也为了方便一些人像我一样到处找方法,把自己平时碰到的一些写代码的事儿记下来,可能也会把一些对安卓使用的看法记下来,或许会很啰嗦,但我保证,肯定都是实用的。
安卓做垂直方向的Litview列表滚动,这个简单,随便一搜一大堆,但实现横向滚动,这个貌似就没那么容易,一开始其实我也是懵逼的,后来看到有人说使用RecyclerView可以实现,研究了一下,基本是满足自己的需求的,简单记录如下:
首先你的界面得定义一个RecyclerView了,这个都知道了:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center">
<android.support.v7.widget.RecyclerView
android:id="@+id/id_recyclerview1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
写个适配器,主要用来加载你定义的子项,就是RecyclerView列表里,你要展示的内容:
class MyAdapter extends RecyclerView.Adapter<MyAdapter .MyViewHolder> {
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.my_item, parent,false);//my_item就是你子项的界面,我定义的很简单,只有一个textview
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setText(mDatas.get(position));
}
@Override
public int getItemCount() {
return mDatas.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
显示的界面my_item我定义的很简单,只有一个textview:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/id_num"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="1" />
</FrameLayout>
对了,我是用android studio的,工程里的gradle里记得添加:
方便自己记忆,也为了方便一些人像我一样到处找方法,把自己平时碰到的一些写代码的事儿记下来,可能也会把一些对安卓使用的看法记下来,或许会很啰嗦,但我保证,肯定都是实用的。
安卓做垂直方向的Litview列表滚动,这个简单,随便一搜一大堆,但实现横向滚动,这个貌似就没那么容易,一开始其实我也是懵逼的,后来看到有人说使用RecyclerView可以实现,研究了一下,基本是满足自己的需求的,简单记录如下:
首先你的界面得定义一个RecyclerView了,这个都知道了:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center">
<android.support.v7.widget.RecyclerView
android:id="@+id/id_recyclerview1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
然后在Activity或者fragment的oncreate方法里,写上:
LinearLayoutManager = new LinearLayoutManager(this);
lm.setOrientation(LinearLayoutManager.HORIZONTAL);//实现横向的关键点,绝对不能漏
RecyclerView mRecyclerView1 = (RecyclerView)findViewById(R.id.id_recyclerview1);//查找到界面上定义的RecyclerViewmRecyclerView1.setLayoutManager(lm);
mRecyclerView1.setAdapter(new MyAdapter ());//适配器,定义看下方
写个适配器,主要用来加载你定义的子项,就是RecyclerView列表里,你要展示的内容:
class MyAdapter extends RecyclerView.Adapter<MyAdapter .MyViewHolder> {
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.my_item, parent,false);//my_item就是你子项的界面,我定义的很简单,只有一个textview
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setText(mDatas.get(position));
}
@Override
public int getItemCount() {
return mDatas.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
显示的界面my_item我定义的很简单,只有一个textview:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/id_num"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="1" />
</FrameLayout>
对了,我是用android studio的,工程里的gradle里记得添加:
compile 'com.android.support:recyclerview-v7:25.0.1'
要把recyclerview给引用进来
是不是很简单,其实我也没想到会这么简单,之前看到还有大神去定义了一个横向滚动的listview,我想说,也真不容易,能用android原生的东西实现的,尽量用吧,毕竟这有谷歌的支持,兼容性啥的还是可靠的阅读全文
0 0
- 安卓的那些事儿-android之RecyclerView的使用,实现列表横向滚动
- Android TV横向滚动实现Launcher的RecyclerView第二弹
- Android之使用WebView的那些事儿
- Android 横向列表GridView 实现横向滚动
- Android 横向列表GridView 实现横向滚动
- Android 横向列表GridView 实现横向滚动
- Android RecyclerView 实现横向滚动效果
- RecyclerView实现横向滚动
- RecyclerView实现横向滚动
- Android TV横向滚动网格布局——RecyclerView的使用
- 视差滚动的那些事儿
- android 横向滚动文字的实现
- Android GridView 实现横向列表水平滚动
- RecyclerView 实现横向滚动效果
- RecyclerView 实现横向滚动效果
- RecyclerView横向列表的一种封装
- 我的Android成长之路(10)----利用recyclerView实现横向滑动
- Android---RecyclerView简单实用(下)之横向水平滚动
- 关于如何修改CSDN中的字体大小和颜色
- ACM-ICPC北京赛区2017网络同步赛(题目6 : Secret Poems)
- C/汇编的混合编程
- 关于程序
- MD5加密详解
- 安卓的那些事儿-android之RecyclerView的使用,实现列表横向滚动
- C++中变量的作用域
- 机器学习(神经网络)
- [BZOJ1007][HNOI2008]水平可见直线(栈)
- 微信测试账号(验证成为开发者)总是配置失败
- 树-堆结构练习——合并果子之哈夫曼树
- Netty学习(一)—基本使用
- crontab定时任务不执行,单独运行sh生效
- Java之GUI编程(二)——布局管理器(转载自己保存学习用)