package com.lzx.demo.ui; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.github.jdsjlzx.ItemDecoration.DividerDecoration; import com.github.jdsjlzx.interfaces.OnRefreshListener; import com.github.jdsjlzx.recyclerview.LRecyclerView; import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter; import com.github.why168.LoopViewPagerLayout; import com.github.why168.listener.OnLoadImageViewListener; import com.github.why168.modle.BannerInfo; import com.github.why168.modle.LoopStyle; import com.lzx.demo.R; import com.lzx.demo.adapter.DataAdapter; import com.lzx.demo.bean.ItemModel; import com.lzx.demo.imageloader.ImageLoader; import com.lzx.demo.imageloader.ImageLoaderUtil; import com.lzx.demo.view.SampleFooter; import java.util.ArrayList; /** * * 带HeaderView、FooterView的LinearLayout RecyclerView */ public class BannerHeaderLayoutActivity extends AppCompatActivity{ private LRecyclerView mRecyclerView = null; private DataAdapter mDataAdapter = null; private LRecyclerViewAdapter mLRecyclerViewAdapter = null; private LoopViewPagerLayout mLoopViewPagerLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sample_ll_activity); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mRecyclerView = (LRecyclerView) findViewById(R.id.list); //init data ArrayList<ItemModel> dataList = new ArrayList<>(); for (int i = 0; i < 16; i++) { ItemModel itemModel = new ItemModel(); itemModel.title = "item" + i; dataList.add(itemModel); } mDataAdapter = new DataAdapter(this); mDataAdapter.setDataList(dataList); mLRecyclerViewAdapter = new LRecyclerViewAdapter(mDataAdapter); mRecyclerView.setAdapter(mLRecyclerViewAdapter); DividerDecoration divider = new DividerDecoration.Builder(this) .setHeight(R.dimen.default_divider_height) .setPadding(R.dimen.default_divider_padding) .setColorResource(R.color.split) .build(); mRecyclerView.setHasFixedSize(true); mRecyclerView.addItemDecoration(divider); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //add a HeaderView //LoopViewPagerLayout使用方法详见github:https://github.com/why168/LoopViewPagerLayout mLoopViewPagerLayout = (LoopViewPagerLayout) LayoutInflater.from(this).inflate(R.layout.layout_banner_header,(ViewGroup)findViewById(android.R.id.content), false); mLoopViewPagerLayout.setLoop_ms(2000);//轮播的速度(毫秒) mLoopViewPagerLayout.setLoop_duration(800);//滑动的速率(毫秒) mLoopViewPagerLayout.setLoop_style(LoopStyle.Empty);//轮播的样式-默认empty mLoopViewPagerLayout.initializeData(this);//初始化数据 ArrayList<BannerInfo> data = new ArrayList<>(); data.add(new BannerInfo<Integer>(R.mipmap.slient, "第一张图片")); data.add(new BannerInfo<Integer>(R.mipmap.arrow_down, "第三张图片")); data.add(new BannerInfo<Integer>(R.mipmap.ic_action_add, "第四张图片")); data.add(new BannerInfo<Integer>(R.mipmap.smile, "第五张图片")); mLoopViewPagerLayout.setOnLoadImageViewListener(new OnLoadImageViewListener() { @Override public void onLoadImageView(ImageView imageView, Object parameter) { ImageLoaderUtil imageLoaderUtil = new ImageLoaderUtil(); ImageLoader imageLoader = new ImageLoader.Builder() .imgView(imageView) .url(parameter) .build(); imageLoaderUtil.loadImage(BannerHeaderLayoutActivity.this, imageLoader); } @Override public ImageView createImageView(Context context) { ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView; } }); mLoopViewPagerLayout.setLoopData(data); mLRecyclerViewAdapter.addHeaderView(mLoopViewPagerLayout); SampleFooter sampleFooter = new SampleFooter(this); sampleFooter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TODO 加载更多 ArrayList<ItemModel> dataList = new ArrayList<>(); for (int i = 0; i < 10; i++) { ItemModel itemModel = new ItemModel(); itemModel.title = "item" + (i + mDataAdapter.getItemCount()); dataList.add(itemModel); } mDataAdapter.addAll(dataList); } }); //禁用下拉刷新功能 mRecyclerView.setPullRefreshEnabled(true); //禁用自动加载更多功能 mRecyclerView.setLoadMoreEnabled(false); //add a FooterView mLRecyclerViewAdapter.addFooterView(sampleFooter); mRecyclerView.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable(){ public void run() { mLRecyclerViewAdapter.notifyDataSetChanged(); mRecyclerView.refreshComplete(10); } }, 1000); } }); } @Override protected void onStart() { super.onStart(); mLoopViewPagerLayout.startLoop(); } @Override protected void onStop() { super.onStop(); mLoopViewPagerLayout.stopLoop(); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } return true; } }