Android 自定义RecyclerView布局(一)
来源:互联网 发布:酷士多网络云手机 编辑:程序博客网 时间:2024/05/02 01:31
今天在CSDN上面看博客的时候,发现了许多人发现升级版的listview控件的RecyclerView特别好用,好且功能强大,但本人现在菜鸟级别,学习Android不到一个月,参考大神的博客终于实现了一个简答的自定义布局文件。
showplan.xml文件布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
需要包含RecyclerView,这个我用Android studio的时候报错了,发现没有添加对应的包,去网上百度了下,最终解决了。我会在文章后面添加包的文件,不用着急啊。
下面是自定义布局文件planitem.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/showmorningplan" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="1" /> <TextView android:id="@+id/showafternoonplan" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="2" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/> <TextView android:id="@+id/shownightplan" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="3" android:layout_gravity="left|bottom" android:layout_below="@+id/showafternoonplan" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="167dp"/></RelativeLayout>
接下来就是RecyclerView的操作,我的自定义布局文件只有3个textview,很简单的。
由于我是在Fragment里面添加布局文件的,所有代码和activity里面不是一样,但基本都差不多,最多修改下几个参数。
package com.bank;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class FragmentPlan extends Fragment { private RecyclerView mRecyclerView; private List<PlanData> mplanData; private HomeAdapter mAdapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.showplan, container, false); initData(); mRecyclerView = (RecyclerView)view.findViewById(R.id.id_recyclerview); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mRecyclerView.setAdapter(mAdapter = new HomeAdapter()); return view; } public void initData() { mplanData = new ArrayList<PlanData>(); for (int i = 0;i<26; i++) { PlanData a =new PlanData(); a.setMoringPlan("morning"); a.setAfterPlan("Afternoon"); a.setNightPlan("Night"); mplanData.add(a); } } class PlanData{ String MoringPlan; String AfterPlan; String NightPlan; String Conclusion; String Rank; void setMoringPlan(String plan) { MoringPlan =plan; } void setAfterPlan(String plan) { AfterPlan =plan; } void setNightPlan(String plan) { NightPlan =plan; } void setRank(String plan) { Rank =plan; } void setConclusion(String plan) { Conclusion =plan; } String getMoringPlan(){ return this.MoringPlan; } String getAfterPlan(){ return this.AfterPlan; } String getNightPlan(){ return this.NightPlan; } String getConclusion(){ return this.Conclusion; } String getRank(){ return this.Rank; } } class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from(getActivity()).inflate(R.layout.planitem, parent,false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { PlanData data = mplanData.get(position); holder.showMorningplan.setText(data.getMoringPlan()); holder.showAfternoonplan.setText(data.getAfterPlan()); holder.showNightplan.setText(data.getNightPlan()); } @Override public int getItemCount() { return mplanData.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView showMorningplan,showAfternoonplan,showNightplan; public MyViewHolder(View view) { super(view); showMorningplan = (TextView) view.findViewById(R.id.showmorningplan); showAfternoonplan = (TextView) view.findViewById(R.id.showafternoonplan); showNightplan = (TextView) view.findViewById(R.id.shownightplan); } } }}
因为这个代码是准备自己写个计划安排的app,是给自己使用的,这个只是测试,我希望做成从数据库获得数据,然后显示出来,目前已经能够显示。所以自定义了一个类,plandata来处理数据,因为数据的类型并不一定全部都是string,有时有可能是图片,所以我用类来包装一组数据,这样方便自己后面的处理。
效果里面没有横线处理,后面文章会处理这个问题,看下效果:
RecyclerView 需要的包
0 0
- Android 自定义RecyclerView布局(一)
- RecyclerView实现自定义布局.一
- Android-RecyclerView自定义布局文件
- Android-UI布局---RecyclerView学习(一)在适配器中自定义长按和点击事件
- Android 自定义RecyclerView.ItemDecoration(GridLayoutManager布局下)
- vlayout(Android)RecyclerView的自定义的LayoutManger,实现不同布局格式的混排
- android中RecyclerView使用自定义的列表布局
- Android 自定义Gridview 解决RecyclerView布局适应问题
- Android RecyclerView 详解(五) RecyclerView多布局的使用
- Android RecyclerView之布局
- Android recyclerView 多布局
- Android RecyclerView一键快速切换布局样式
- Android-RecyclerView(解析一)
- RecyclerView 实战一 线性布局
- android RecyclerView自定义 LayoutManager
- (4.1.45.1)RecyclerView 添加头部和尾部布局 一
- 不一样的RecyclerView优雅实现复杂列表布局(一)
- android RecyclerView的复杂布局
- QML的Label实现Tooltip提示效果
- 为什么一个java源文件中只能有一个public类?
- 关于表达式计算的问题
- Spark 中 map 与 flatMap 的区别
- 学习css3到底要学些什么
- Android 自定义RecyclerView布局(一)
- [Usaco2008 Oct]灌水(MST)
- BZOJ1009: [HNOI2008]GT考试
- 重命名 sql server 安装服务器
- LeetCode 21. Merge Two Sorted Lists
- iOS 动画Animation-4-3: CALayer子类:CAShapeLayer
- Dynamic Programing 动态规划试题
- jvm 堆内存分配
- Leetcode #41. First Missing Positive 第一个不在的正数 解题报告