diff --git a/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java b/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java index c9eed6e..f99278c 100644 --- a/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java +++ b/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java @@ -23,7 +23,7 @@ public class RcvAdapterWrapper extends RecyclerView.Adapter data = new ObservableArrayList<>(); + private RcvAdapterWrapper wrapper; + private GridLayoutManager layoutManager1; + private StaggeredGridLayoutManager layoutManager2; + private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final RecyclerView recyclerView = new RecyclerView(this); + recyclerView = new RecyclerView(this); LayoutUtil.setContentView(this, recyclerView); LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); - GridLayoutManager layoutManager1 = new GridLayoutManager(this, 2); - StaggeredGridLayoutManager layoutManager2 = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); + layoutManager1 = new GridLayoutManager(this, 2); + layoutManager2 = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL); recyclerView.setLayoutManager(layoutManager1); data.addAll(DataManager.loadData(getBaseContext())); @@ -70,7 +74,7 @@ public AdapterItem createItem(Object type) { } }; - final RcvAdapterWrapper wrapper = new RcvAdapterWrapper(adapter, recyclerView.getLayoutManager()); + wrapper = new RcvAdapterWrapper(adapter, recyclerView.getLayoutManager()); Button header = new Button(this); header.setText("Header"); @@ -111,6 +115,9 @@ public boolean onCreateOptionsMenu(Menu menu) { //添加菜单项 MenuItem add = menu.add(0, 0, 0, "add"); add.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + MenuItem change = menu.add(1, 1, 0, "change"); + change.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true; } @@ -122,6 +129,15 @@ public boolean onOptionsItemSelected(MenuItem item) { model.content = "kale"; data.add(0, model); return true; + } else if (item.getItemId() == 1) { + if (wrapper.getLayoutManager() instanceof StaggeredGridLayoutManager) { + recyclerView.setLayoutManager(layoutManager1); + wrapper.setLayoutManager(layoutManager1); + } else { + recyclerView.setLayoutManager(layoutManager2); + wrapper.setLayoutManager(layoutManager2); + } + return true; } else { return super.onOptionsItemSelected(item); }