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;
}
}