您的位置:首页 > 其它

And 4000 roid RecyclerView实现多布局切换功能从导入到运行详解,,上方图片轮播,下方多布局加载

2016-10-09 18:24 501 查看
这个RecyclerView 感觉和它命里面相冲,几次想用 都不成功,现在说一下自己的几点想法和意见    1,首先是导入:           一定要记住:你的API等级要过了21                               你的API等级要过21                             你的API等级要过21                重要的话重复三遍........            其次还要注意的是你的V4包和导入的RecyclerView的版本一致,最后我找了很久版本一致,如果你的V4包是AS线上的,你一定要用线上的RecyclerView .如果你的V4包是线下的,你一定要用线下的RecyclerView. 还有就是版本,版本一致. 还有就是与V7包版本一致.  如果不一致,你就会出现             你的recyclerView包缺类的问题            你的recyclerView包缺类              重要的说两遍最后我用的是
compile 'com.android.support:appcompat-v7:23.3.0'compile 'com.android.support:recyclerview-v7:23.3.0'
 这样 我终于导入了recyclerView .         2,其次就是多布局的问题了 我这里结合了RollPagerView这个第三方控件 上边实现轮播 下边是listview样式的加载MainActivity里面
package com.test.administrator.testapp;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.widget.Toast;import com.jude.rollviewpager.RollPagerView;import com.jude.rollviewpager.hintview.ColorPointHintView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Objects;public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;private List<Map<String,Object>> list=new ArrayList<>();private RecAdapter recAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();initCtrl();recyclerView.setAdapter(recAdapter);recAdapter.setList(list);}private void initCtrl() {recAdapter=new RecAdapter(this,list);RecyclerView.LayoutManager manager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);recyclerView.setLayoutManager(manager);}private void initView() {recyclerView= (RecyclerView) findViewById(R.id.recyclerView);}private void initData() {Map<String,Object> map00=new HashMap<String, Object>();map00.put("img",R.drawable.img1);map00.put("txt","00");list.add(map00);Map<String,Object> map01=new HashMap<String, Object>();map01.put("img",R.drawable.img2);map01.put("txt","01");list.add(map01);Map<String,Object> map02=new HashMap<String, Object>();map02.put("img",R.drawable.img2);map02.put("txt","02");list.add(map02);}}
activity_main
    tools:context="com.test.administrator.testapp.MainActivity"><android.support.v7.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/recyclerView"></android.support.v7.widget.RecyclerView></RelativeLayout>
lunbo_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"><com.jude.rollviewpager.RollPagerViewandroid:id="@+id/roll_view_pager"android:layout_width="match_parent"android:layout_height="180dp"rollviewpager_play_delay="3000"/></LinearLayout>
putong_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/imageView"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textView"/></LinearLayout>
RecAdaper
package com.test.administrator.testapp;import android.content.Context;import android.graphics.Color;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.jude.rollviewpager.RollPagerView;import com.jude.rollviewpager.hintview.ColorPointHintView;import java.util.List;import java.util.Map;/*** Created by Administrator on 2016/10/9 0009.*/public class RecAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {private Context context;private List<Map<String,Object>> list;public RecAdapter(Context context, List<Map<String,Object>> list){this.list=list;this.context = context;}public void setList(List<Map<String,Object>> list) {this.list = list;notifyDataSetChanged();}@Overridepublic int getItemViewType(int position) {Log.e("positions",position+"你好哦");if (position==0){return 0;}else {return 1;}}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = null;RecyclerView.ViewHolder holder = null;switch (viewType){case 0:view = LayoutInflater.from(context).inflate(R.layout.lunbo_item, parent,false);holder = new ViewHolderOne(view);break;case 1:view = LayoutInflater.from(context).inflate(R.layout.putong_item, parent,false);holder = new ViewHolderTwo(view);break;}return holder;}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {Log.e("poss",position+"你不好");switch (getItemViewType(position)){case 0:ViewHolderOne viewHolderOne=(ViewHolderOne)holder;//设置播放时间间隔viewHolderOne.rollPagerView.setPlayDelay(1000);//设置透明度viewHolderOne.rollPagerView.setAnimationDurtion(500);//设置适配器viewHolderOne.rollPagerView.setAdapter(new TestNormalAdapter());//设置指示器(顺序依次)//自定义指示器图片//设置圆点指示器颜色//设置文字指示器//隐藏指示器//mRollViewPager.setHintView(new IconHintView(this, R.drawable.point_focus,//  R.drawable.point_normal));viewHolderOne.rollPagerView.setHintView(new ColorPointHintView(context,Color.YELLOW,Color.WHITE));//mRollViewPager.setHintView(new TextHintView(this));//mRollViewPager.setHintView(null);break;case 1:ViewHolderTwo viewHolderTwo=(ViewHolderTwo)holder;viewHolderTwo.imageView.setImageResource((int)list.get(position-1).get("img"));viewHolderTwo.textView.setText(String.valueOf(list.get(position-1).get("txt")));Log.e("tooot",list.size()+"fsdfdsfsdf");Toast.makeText(context,list.size()+"ffff",Toast.LENGTH_LONG).show();break;}}@Overridepublic int getItemCount() {return list.size()+1;}class ViewHolderOne extends RecyclerView.ViewHolder {RollPagerView rollPagerView=null;public ViewHolderOne(View view){super(view);rollPagerView= (RollPagerView) view.findViewById(R.id.roll_view_pager);}}class ViewHolderTwo extends RecyclerView.ViewHolder {ImageView imageView=null;TextView textView=null;public ViewHolderTwo(View view) {super(view);// TODO Auto-generated constructor stubimageView= (ImageView) view.findViewById(R.id.imageView);textView = (TextView) view.findViewById(R.id.textView);}}}
 
TestNormalAdapter
package com.test.administrator.testapp;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.jude.rollviewpager.adapter.StaticPagerAdapter;/*** Created by Administrator on 2016/10/8 0008.*/public class TestNormalAdapter extends StaticPagerAdapter {private int[] imgs = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,};@Overridepublic View getView(ViewGroup container, int position) {ImageView view = new ImageView(container.getContext());view.setImageResource(imgs[position]);view.setScaleType(ImageView.ScaleType.CENTER_CROP);view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));return view;}@Overridepublic int getCount() {return imgs.length;}}
这样子就实现了...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RecyclerView
相关文章推荐