文档章节

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

coderminer
 coderminer
发布于 2016/11/14 20:02
字数 307
阅读 85
收藏 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
博文 49
码字总数 8957
作品 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风格的应用(三)--DrawerLayout

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

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

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

AFinalDream
2017/06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部