package org.loader.layoutmanager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; 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.TextView; import android.widget.Toast; import java.util.Random; public class MainActivity extends AppCompatActivity { private static final int[] COLORS = {0xff00FFFF, 0xffDEB887, 0xff5F9EA0, 0xff7FFF00, 0xff6495ED, 0xffDC143C, 0xff008B8B, 0xff006400, 0xff2F4F4F, 0xffFF69B4, 0xffFF00FF, 0xffCD5C5C, 0xff90EE90, 0xff87CEFA, 0xff800000}; private RecyclerView mRecyclerView; private Adapter mAdapter = new Adapter(); private int mCount = 50; private int mGroupSize = 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.list); init(); } private void init() { mRecyclerView.setLayoutManager(new CardLayoutManager(mGroupSize, true)); mRecyclerView.setAdapter(mAdapter); } public void add(View view) { mCount += 10; mAdapter.notifyDataSetChanged(); } public void change(View view) { if (mGroupSize == 3) { mGroupSize = 9;} else { mGroupSize = 3;} init(); } class Adapter extends RecyclerView.Adapter<Adapter.Holder> { @Override public Holder onCreateViewHolder(ViewGroup parent, int viewType) { Log.d("TAG", "onCreateViewHolder() called with: parent = [" + parent + "], viewType = [" + viewType + "]"); View item = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item, parent, false); return new Holder(item); } @Override public void onBindViewHolder(final Holder holder, final int position) { Log.d("TAG", "onBindViewHolder() called with: holder = [" + holder + "], position = [" + position + "]"); // holder.item.setText("" + position); holder.item.setCardColor(randomColor()); holder.text.setText("菜单" + position); holder.item.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, holder.text.getText(), Toast.LENGTH_SHORT).show(); } }); } @Override public int getItemCount() { return mCount; } private int randomColor() { return COLORS[new Random().nextInt(COLORS.length)]; } class Holder extends RecyclerView.ViewHolder { CardItemView item; TextView text; public Holder(View itemView) { super(itemView); item = (CardItemView) itemView.findViewById(R.id.item); text = (TextView) itemView.findViewById(R.id.text); } } } }