博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Creating Apps With Material Design —— Creating Lists and Cards
阅读量:6717 次
发布时间:2019-06-25

本文共 4090 字,大约阅读时间需要 13 分钟。

转载请注明  翻译自Developer Android。时间仓促,有翻译问题请留言指出,谢谢

创建Lisst和Cards

在你的应用程序创建复杂的清单,并与材料设计风格卡。您能够使用RecyclerView和CardView部件。 

创建RecyclerView 

该RecyclerView widget是ListView中的更先进,更灵活的版本号。这个小工具是一个容器。用于显示。能很有效地维护了意见数量有限,滚动大的数据集。

当你有收集数据。它的元素在执行时改变基于用户行为和网络事件使用RecyclerView部件。 

该RecyclerView类简化,提供显示和处理大数据集: 
    定位项目布局管理器 
    默认的动画为公用项的操作。比如删除或添加的项目 

您还能够在RecyclerView部件定义自己定义布局管理器和动画的灵活性。

要使用RecyclerView小部件。你必须指定一个适配器和一个布局管理器。要创建一个适配器。扩展RecyclerView.Adapter类。实施的细节取决于你的数据集的详细情况和意见的类型。欲了解很多其它信息。请參见以下的样例。 

RecyclerView内部的布局管理器的位置的项目的意见,并确定何时重用项目的看法不再对用户可见。重用(或回收)的图,布局管理器可能会问适配器与数据集不同的元素替换视图的内容。以这样的方式回收的观点提高通过避免产生不必要的视图或执行昂贵findViewById()的查找性能。 
RecyclerView提供这些内置的布局管理器: 
    LinearLayoutManager显示在垂直或水平滚动列表项。

 

    GridLayoutManager显示在网格中的项目。 
    StaggeredGridLayoutManager显示了交错网格项目。

 

要创建自己定义布局管理器。扩展RecyclerView.LayoutManager类。 

动画 

动画的加入和删除项目中默认RecyclerView启用。要自己定义这些动画,继承RecyclerView.ItemAnimator类。并使用RecyclerView.setItemAnimator()方法。

Examples

以下的代码演示样例演示怎样将RecyclerView加入到布局:

一旦你加入了一个RecyclerView小部件布局,获取句柄的对象。将其连接到一个布局管理器,并附上要显示的数据适配器:

public class MyActivity extends Activity {    private RecyclerView mRecyclerView;    private RecyclerView.Adapter mAdapter;    private RecyclerView.LayoutManager mLayoutManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.my_activity);        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);        // use this setting to improve performance if you know that changes        // in content do not change the layout size of the RecyclerView        mRecyclerView.setHasFixedSize(true);        // use a linear layout manager        mLayoutManager = new LinearLayoutManager(this);        mRecyclerView.setLayoutManager(mLayoutManager);        // specify an adapter (see also next example)        mAdapter = new MyAdapter(myDataset);        mRecyclerView.setAdapter(mAdapter);    }    ...}
该适配器提供訪问信息在您的数据集。创建视图的项目,代替了一些新的数据项的视图的内容时,原来的产品不再可见。以下的代码演示样例显示了一个简单的实现,它由一个字符串数组的使用TextView的小部件显示的一组数据:

public class MyAdapter extends RecyclerView.Adapter
{ private String[] mDataset; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public TextView mTextView; public ViewHolder(TextView v) { super(v); mTextView = v; } } // Provide a suitable constructor (depends on the kind of dataset) public MyAdapter(String[] myDataset) { mDataset = myDataset; } // Create new views (invoked by the layout manager) @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.my_text_view, parent, false); // set the view's size, margins, paddings and layout parameters ... ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.mTextView.setText(mDataset[position]); } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mDataset.length; }}

创建CardView

CardView扩展的FrameLayout类,并同意你显示里面有跨平台一致的外观卡的信息。 CardView部件能够有阴影和圆角。 

要创建具有阴影卡。使用card_view:cardElevation属性。 CardView使用真实高程和动态阴影在Android5.0(API等级21)以上。并回落到较早版本号的纲领性阴影实施。

欲了解很多其它信息,请參见维护兼容性。

 

使用这些属性来定制CardView小部件的外观: 
    要设置圆角半径在你的布局,使用card_view:cardCornerRadius属性。

 

    要设置圆角半径在你的代码中。使用CardView.setRadius方法。 
    设置卡的背景颜色,使用card_view:cardBackgroundColor属性。

 

以下的代码演示样例显示了怎样在您的布局CardView部件:

你可能感兴趣的文章
浅谈JAVA的线程安全与性能之间的权衡
查看>>
python入门系列之一:Centos6下python2.7的安装
查看>>
31.软连接
查看>>
oracle 11g 手工热备-数据库
查看>>
跟我一起数据挖掘(17)——分布式缓存
查看>>
python paramiko 执行命令
查看>>
centos7安装
查看>>
docker强制删除none的image镜像
查看>>
JavaScript学习
查看>>
Linux下通用二进制安装包安装MySQL-5.6.37
查看>>
简单跳板机的搭建笔记
查看>>
Verizon宣布2018年将部署全国性NB-IoT网络
查看>>
python 十六进制转换十进制(MAC 转换 IP 地址)
查看>>
opensips使用加密密码认证
查看>>
静态元素过期时间
查看>>
php 解决乱码问题
查看>>
Ubuntu安装Mcafee步骤
查看>>
FTP服务器搭建下的主动模式和被动模式
查看>>
owncloud在CentOS上详细部署
查看>>
MyEclipse 代码运行生产的key
查看>>