From 3898df3dcd52d79ffe782431e4945c50899540e5 Mon Sep 17 00:00:00 2001 From: kale Date: Fri, 13 May 2016 10:58:03 +0800 Subject: [PATCH] =?UTF-8?q?wrapper=E6=94=AF=E6=8C=81=E4=BA=86setLayoutMana?= =?UTF-8?q?ger=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kale/adapter/RcvAdapterWrapper.java | 12 +++++++++- .../RcvHeaderFooterTestActivity.java | 24 +++++++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) 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); }