文档章节

Android Material风格的应用(二)--RecyclerView

coderminer
 coderminer
发布于 2016/11/14 20:02
字数 307
阅读 84
收藏 2

添加RecyclerView

Android Material风格的应用(一)--AppBar TabLayout
Android Material风格的应用(二)--RecyclerView
Android Material风格的应用(三)--DrawerLayout
Android Material风格的应用(四)--FloatActionButton
Android Material风格的应用(五)--CollapsingToolbar

RecyclerView 工程源码 添加对应的支持库

compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'

添加 res/layout/recycler_view.xml

<android.support.v7.widget.RecyclerView
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/recycler_view"
  android:clipToPadding="false"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  android:scrollbars="vertical"
  app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v7.widget.RecyclerView>

ListContentFragment.java TileContentFragment.javaCardContentFragment.java中 分别创建各自的ContentAdapter,在onCreateView方法中初始化RecyclerView相关的内容

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    RecyclerView recyclerView = (RecyclerView)inflater.inflate(R.layout.recycler_view,container,false);
    ContentAdapter adapter = new ContentAdapter(recyclerView.getContext());
    recyclerView.setAdapter(adapter);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new GridLayoutManager(getActivity(),2));
    return recyclerView;
}
public static class ViewHolder extends RecyclerView.ViewHolder{
  public ImageView imageView;
  public TextView textView;
  public ViewHolder(LayoutInflater inflater,ViewGroup parent) {
      super(inflater.inflate(R.layout.item_tile,parent,false));
      imageView = (ImageView)itemView.findViewById(R.id.title_picture);
      textView = (TextView)itemView.findViewById(R.id.title_title);
  }
}
public static class ContentAdapter extends RecyclerView.Adapter<ViewHolder>{
  private static final int LENGTH = 18;
  private String[] names;
  private Drawable[] avatars;

  public ContentAdapter(Context context) {
      Resources resources = context.getResources();
      names = resources.getStringArray(R.array.places);
      TypedArray a = resources.obtainTypedArray(R.array.places_picture);
      avatars = new Drawable[a.length()];
      for(int i = 0;i<a.length();i++){
          avatars[i] = a.getDrawable(i);
      }
      a.recycle();
  }

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

  @Override
  public void onBindViewHolder(ViewHolder holder, int position) {
      holder.imageView.setImageDrawable(avatars[position % avatars.length]);
      holder.textView.setText(names[position % names.length]);
  }

  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      return new ViewHolder(LayoutInflater.from(parent.getContext()),parent);
  }

}

© 著作权归作者所有

共有 人打赏支持
coderminer
粉丝 1
博文 35
码字总数 8561
作品 0
海淀
创建Material Design风格的Android应用--应用主题

昨天正式发布了android 5,同时android developer网站也更新了,增加了创建Material Design风格的Android应用指南,也更新了Support Library,在support library增加了一些Material Design风格...

码农明明
2014/10/19
0
8
Android Material风格的应用(五)--CollapsingToolbar

Collapsing Toolbar Android Material风格的应用(一)--AppBar TabLayout Android Material风格的应用(二)--RecyclerView Android Material风格的应用(三)--DrawerLayout Android Material风格......

coderminer
2016/11/14
34
0
Android Material风格的应用(四)--FloatActionButton

添加 FloatActionButton和SnackBar Android Material风格的应用(一)--AppBar TabLayout Android Material风格的应用(二)--RecyclerView Android Material风格的应用(三)--DrawerLayout Andro......

coderminer
2016/11/14
60
0
Android 之 Material Design(三)—DrawerLayout+NavigationView+Toolbar(点击icon打开关闭侧滑菜单)

前言 关于Material Design相关的控件,前两篇文章已经介绍了一些常用的控件了,这篇文章主要介绍一下DrawerLayout+NavigationView+Toolbar。这样Material Design的也介绍的差不多了,剩下Rec...

AFinalDream
2017/06/22
0
0
Android Material风格的应用(三)--DrawerLayout

添加抽屉导航 Android Material风格的应用(一)--AppBar TabLayout Android Material风格的应用(二)--RecyclerView Android Material风格的应用(三)--DrawerLayout Android Material风格的应用......

coderminer
2016/11/14
84
0

没有更多内容

加载失败,请刷新页面

加载更多

谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linuxCool
21分钟前
1
0
SpringBoot内置定时任务

springBoot内置定时任务 应用场景 业务监控,定时发送邮件,定时删除缓存等等。 Spring Boot 内置定时 pom 包配置 <dependencies> <dependency> <groupId>org.springframework.b......

Grittan
26分钟前
12
1
在 Linux 中基于密钥认证的 SSH的配置方法

什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议。无论何时使用 SSH 在无安全网络上发...

linuxprobe16
43分钟前
1
0
sed命令

10月17日任务 9.4/9.5 sed 1.sed(上)(下) 1.sed 匹配功能 #sed -n ‘/root/’ p test.txt 将带有root的内容打印出来 同时支持 . * 还有 + 不过需要脱译,或者在前面选项加r。 支持{ } 支...

hhpuppy
54分钟前
1
0
day120-20181018-英语流利阅读-待学习

千禧一代注意了:一大波公司正向你的钱包袭来 Daniel 2018-10-18 1.今日导读 这几年,你有没有发现,不管是在微信公众号还是在抖音,有越来越多的商家和品牌开始玩起了网络用语和表情包,从卖...

飞鱼说编程
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部