大佬教程收集整理的这篇文章主要介绍了Android Material设计中列表和卡片的创建方法解析,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
5.0提供了两个新的Widget,它们使用了Material Design 的style和animation:
它两位于 sdk/extras/android/support/v7/cardview 和 sdk/extras/android/support/v7/RecyclerView
你可以在RecyclerView中灵活定义 布局管理器和动画
要使用RecyclerView组件,您必须指定一个适配器和布局管理器。创建一个适配器,继承RecyclerView.Adapter类。有关更多信息,请参见下面的例子。
RecyclerView并确定重用项目视图时,布局管理器的利用item的方法,不再是对用户可见。重用(或回收)视图,布局管理器可能会问适配器,替换内容为不同的数据集的元素。回收view时,以这种方式来改进性能:避免创建不必要的view或执行消耗大的findViewById()查询。
RecyclerView提供了如下管理器:
要创建一个自定义布局管理器,需要继承RecyclerView.LayoutManager类
动画:
添加和删除item的动画,在RecyclerView默认启用。定制这些动画,需要继承RecyclerView.ItemAnimator类并使用RecyclerView.setItemAnimator()方法。
例子:
layout
<!-- A RecyclerView with some commonly used attributes --> <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/>
activity
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); //使用固定size 以优化性能 // 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); } ... } adapter public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { 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 TextView v = (TextView)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继承自FrameLayout,以卡片式显示一致的外观。它可以有阴影和圆角
创建一个有阴影的卡片,使用card_view:cardElevation属性。
使用这些属性来定制CardView组件的外观:
例
<LinearLayout xmlns:android="http://scheR_38_11845@as.android.com/apk/res/android" xmlns:tools="http://scheR_38_11845@as.android.com/tools" xmlns:card_view="http://scheR_38_11845@as.android.com/apk/res-auto" ... > <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:card_view="http://scheR_38_11845@as.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" card_view:cardCornerRadius="4dp"> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v7.widget.CardView> </LinearLayout>
添加依赖:
gradle依赖
dependencies { ... compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+' }
以上是大佬教程为你收集整理的Android Material设计中列表和卡片的创建方法解析全部内容,希望文章能够帮你解决Android Material设计中列表和卡片的创建方法解析所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。