首页 > 系统 > Android > 正文

Android时光轴

2019-11-09 18:31:25
字体:
来源:转载
供稿:网友

Android中使用RecyclerView实现时光轴,代码简单易懂.

效果如下:

添加依赖(gradle中):

compile 'com.android.support:recyclerview-v7:23.0.0'

activity中:

public class MainActivity extends AppCompatActivity {    PRivate RecyclerView recyclerView;    private List<TimeInfo > list=null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initLayout();    }    private void initLayout(){        recyclerView= (RecyclerView) findViewById(R.id.recyclerView);        recyclerView.setLayoutManager(new LinearLayoutManager(this));        recyclerView.setHasFixedSize(true);        recyclerView.setItemAnimator(new DefaultItemAnimator());        list=new ArrayList<>();        for(int i=0;i<10;i++){            list.add(new TimeInfo());        }        TimelineAdapter mAdapter = new TimelineAdapter(this, list);        recyclerView.setAdapter(mAdapter);    }}adapter中:

public class TimelineAdapter extends  RecyclerView.Adapter<TimelineAdapter.ViewHolder> {    private static final int ALPHA = 100;    private List<TimeInfo> list=null;    private Context context;    public TimelineAdapter(Context context,List<TimeInfo> list) {        this.list=list;        this.context=context;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View v = LayoutInflater.from(parent.getContext())                .inflate(R.layout.v7_item_timeline, null);        return new ViewHolder(v);    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        holder.textView.setText("2016-08-10/n10:20");        int color = context.getResources().getColor(R.color.colorAccent);        holder.civ.setFillColor(color);        holder.civ.setBorderColor(ColorUtils.setAlphaComponent(color, ALPHA));        holder.img.setBackgroundResource(R.mipmap.ic_zhihu_logo);        holder.item_timeline_view.setBackgroundResource(list.size()%2==0?R.color.colorAccent:R.color.colorPrimary);    }    @Override    public int getItemCount() {        return list.size();    }    public static class ViewHolder extends RecyclerView.ViewHolder {        TextView textView;        CircleImageView civ;        ImageView img;        View item_timeline_view;        public ViewHolder(View v) {            super(v);            textView = (TextView) v.findViewById(R.id.item_timeline_time);            civ= (CircleImageView) v.findViewById(R.id.item_timeline_icon_bg);            img= (ImageView) v.findViewById(R.id.item_timeline_icon);            item_timeline_view=v.findViewById(R.id.item_timeline_view);        }    }}

其他的代码见源码.....


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表