广州网站设计推荐柚米,给自己的网站做关键词流程,保定信息平台网站建设,做a视频网站有哪些为什么80%的码农都做不了架构师#xff1f; 随着 Google 推出了全新的设计语言 Material Design#xff0c;还迎来了新的 Android 支持库 v7#xff0c;其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 —— CardView。RecyclerView也是谷… 为什么80%的码农都做不了架构师 随着 Google 推出了全新的设计语言 Material Design还迎来了新的 Android 支持库 v7其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 —— CardView。RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutManager来快速实现listview、gridview、瀑布流的效果而且还可以设置横向和纵向显示添加动画效果等。 CardView实现卡片化效果。 下拉加载使用SwipeRefreshLayout是官方的下拉刷新控件简洁美观的风格使其广泛应用在项目中。美中不足的是SwipeRefreshLayout缺少上拉加载的效果今天结合RecyclerView实现一个支持下拉刷新与上拉加载的SwipeRefreshLayout。 案例包含了RecyclerView基本使用RecyclerView上拉刷新下拉加载RecyclerView多Item布局CardView基本使用和CardView上拉刷新下拉加载。如图注第三个案例线显示格式在模拟器上有问题手机则没问题的,手机测试效果更佳 布局 android.support.v7.widget.RecyclerViewandroid:idid/my_recycler_viewandroid:scrollbarsverticalandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/Activity public class RecyclerViewActivity extends Activity {private RecyclerView recyclerView;private ListString mDatas;private RecyclerAdapter1 adapter;SuppressLint(InlinedApi)Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.demo1);initData();initView();}private void initView(){recyclerView(RecyclerView) findViewById(R.id.demo1_recycler);// 设置布局管理LayoutManagerLinearLayoutManager managernew LinearLayoutManager(this);//设置水平或者垂直// manager.setOrientation(LinearLayoutManager.HORIZONTAL);recyclerView.setLayoutManager(manager);// 可选如果可以确定每个item的高度是固定的设置这个选项可以提高性能recyclerView.setHasFixedSize(true);adapternew RecyclerAdapter1(this,mDatas);recyclerView.setAdapter(adapter);adapter.setOnItemClickListener(new IOnClickListenter() {Overridepublic void onItemClick(View view, int position) {Toast.makeText(getApplicationContext(),position---mDatas.get(position),Toast.LENGTH_LONG).show();}});}private void initData() {mDatas new ArrayListString();for (int i 0; i 50; i) {mDatas.add(item--- i);}}} Adapter public class RecyclerAdapter1 extends RecyclerView.AdapterRecyclerAdapter1.ViewHolder{private Context context;private ListString list;public RecyclerAdapter1(Context context, ListString list){this.contextcontext;this.listlist;}Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view LayoutInflater.from(context).inflate(R.layout.demo1_item,parent,false);ViewHolder viewHoldernew ViewHolder(view);return viewHolder;}Overridepublic void onBindViewHolder(ViewHolder holder, int position) {holder.textView.setText(list.get(position));}Overridepublic int getItemCount() {return list.size();}private IOnClickListenter onClickListenternull;public void setOnItemClickListener(IOnClickListenter listener){this.onClickListenterlistener;}public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{private TextView textView;public ViewHolder(View view){super(view);textView(TextView)view.findViewById(R.id.textview1);textView.setOnClickListener(this);}Overridepublic void onClick(View v) {if (onClickListenter ! null) {onClickListenter.onItemClick(v,getPosition());}}}
} 上拉刷新下拉加载布局 android.support.v4.widget.SwipeRefreshLayoutandroid:idid/swipeRefreshLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid.support.v7.widget.RecyclerViewandroid:idid/recyclerViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/android.support.v7.widget.RecyclerView/android.support.v4.widget.SwipeRefreshLayout 上拉刷新下拉加载Activity public class RecyclerViewPullActivity extends Activity {private SwipeRefreshLayout swipeRefreshLayout;private MyRefreshRecyclerView recyclerView;public static ListString listnew ArrayListString();private RecyclerAdapter2 adapter;private Handler mHandler new Handler();Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.demo2);initView();}private void initView(){swipeRefreshLayout (SwipeRefreshLayout) findViewById(R.id.swipe_layout);recyclerView (MyRefreshRecyclerView) findViewById(R.id.recycler);adapternew RecyclerAdapter2();recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));swipeRefreshLayout.setColorSchemeResources(R.color.blue,R.color.green);swipeRefreshLayout.post(new Runnable() {Overridepublic void run() {swipeRefreshLayout.setRefreshing(true);}});mHandler.postDelayed(new Runnable() {Overridepublic void run() {getData();recyclerView.setAdapter(adapter);adapter.notifyDataSetChanged();swipeRefreshLayout.setRefreshing(false);}},1500);swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {Overridepublic void onRefresh() {mHandler.postDelayed(new Runnable() {Overridepublic void run() {getData();recyclerView.setAdapter(adapter);adapter.notifyDataSetChanged();swipeRefreshLayout.setRefreshing(false);}}, 1500);}});recyclerView.setMyRefreshRecyclerViewListener(new MyRefreshRecyclerView.MyRefreshRecyclerViewListener() {Overridepublic void onLoadMore() {mHandler.postDelayed(new Runnable() {Overridepublic void run() {if (list.size() 14) {recyclerView.setLoadMore(true);} else {int randomInt new Random().nextInt(100);list.add(上拉加载添加数字: randomInt);adapter.notifyDataSetChanged();recyclerView.setLoadMore(false);}}}, 1000);}});}private void getData() {list.clear();Random random new Random();while (list.size() 12) {int randomInt random.nextInt(100);list.add(String.valueOf(randomInt));}}
} AS添加依赖库 compile com.android.support:recyclerview-v7:23.2.1compile com.android.support:cardview-v7:23.2.1 Eclipse下使用 RecyclerView.Jar CardView.Jar 点击下载 由于代码太多完整代码未给出源码直接下载即可 源码点击下载 转载于:https://my.oschina.net/zhangqie/blog/833522