package com.lzx.demo.multitype; import android.os.Bundle; 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 com.github.jdsjlzx.ItemDecoration.DividerDecoration; import com.github.jdsjlzx.recyclerview.LRecyclerView; import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter; import com.lzx.demo.R; import com.lzx.demo.adapter.ExpandableItemAdapter; import com.lzx.demo.bean.Level0Item; import com.lzx.demo.bean.Level1Item; import com.lzx.demo.bean.MultiItemEntity; import com.lzx.demo.bean.Person; import com.lzx.demo.view.SampleHeader; import java.util.ArrayList; import java.util.Random; /** * * 带HeaderView、FooterView的LinearLayout RecyclerView */ public class ExpandableActivity extends AppCompatActivity { private LRecyclerView mRecyclerView = null; private ExpandableItemAdapter mDataAdapter = null; private LRecyclerViewAdapter mLRecyclerViewAdapter = null; @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); mDataAdapter = new ExpandableItemAdapter(this); mDataAdapter.setDataList(generateData()); 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 View header = LayoutInflater.from(this).inflate(R.layout.sample_header,(ViewGroup)findViewById(android.R.id.content), false); mLRecyclerViewAdapter.addHeaderView(header); mLRecyclerViewAdapter.addHeaderView(new SampleHeader(this)); //禁用下拉刷新功能 mRecyclerView.setPullRefreshEnabled(false); //禁用自动加载更多功能 //mRecyclerView.setLoadMoreEnabled(false); //add a FooterView //mLRecyclerViewAdapter.addFooterView(sampleFooter); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } return true; } private ArrayList<MultiItemEntity> generateData() { int lv0Count = 9; int lv1Count = 3; int personCount = 5; String[] nameList = {"Bob", "Andy", "Lily", "Brown", "Bruce"}; Random random = new Random(); ArrayList<MultiItemEntity> res = new ArrayList<>(); for (int i = 0; i < lv0Count; i++) { Level0Item lv0 = new Level0Item("This is " + i + "th item in Level 0", "subtitle of " + i); for (int j = 0; j < lv1Count; j++) { Level1Item lv1 = new Level1Item("Level 1 item: " + j, "(no animation)"); for (int k = 0; k < personCount; k++) { lv1.addSubItem(new Person(nameList[k], random.nextInt(40))); } lv0.addSubItem(lv1); } res.add(lv0); } return res; } }