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;}}这样子就实现了...
相关文章推荐
- 微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
- 【Android2D游戏开发十六】(上文之触摸屏手势)详解Android Gesture 手势操作!利用手势实现一个简单切换图片的功能!
- javascript 实现图片轮播和点击切换功能
- Android应用中图片浏览时实现自动切换功能的方法详解
- 手机商城第三天,利用第三方Banner实现图片切换功能,利用Glide加载远程图片
- 图片预加载:jquery 图片预加载功能,可以实现先模糊在清晰的显示
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 实例讲解Android中如何实现图片的异步加载功能
- 做一个JS实现带渐变可停顿功能的图片轮播
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- JQuery实现图片轮播切换效果--水平切换/垂直切换
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 实例讲解Android中如何实现图片的异步加载功能
- Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
- Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
- Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
- 用javascript实现的图片马赛克后显示并切换加文字功能
- 纯JS实现的批量图片预览加载功能
- Jquery.LazyLoad.js实现图片延迟加载功能