Skip to content

Commit

Permalink
wrapper支持了setLayoutManager操作
Browse files Browse the repository at this point in the history
  • Loading branch information
kale committed May 13, 2016
1 parent cc58216 commit 3898df3
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
12 changes: 11 additions & 1 deletion adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class RcvAdapterWrapper extends RecyclerView.Adapter<RecyclerView.ViewHol
public static final int TYPE_FOOTER = 99931;

@Getter
private final RecyclerView.LayoutManager layoutManager;
private RecyclerView.LayoutManager layoutManager;

private RecyclerView.Adapter mWrapped;

Expand Down Expand Up @@ -123,6 +123,16 @@ public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int posit
}
}

public void setLayoutManager(RecyclerView.LayoutManager layoutManager) {
this.layoutManager = layoutManager;
if (headerView != null) {
setFullSpan(headerView, layoutManager);
}
if (footerView != null) {
setFullSpan(footerView, layoutManager);
}
}

///////////////////////////////////////////////////////////////////////////
// 添加/移除头部、尾部的操作
///////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,20 @@
public class RcvHeaderFooterTestActivity extends AppCompatActivity {

private ObservableArrayList<DemoModel> 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()));
Expand All @@ -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");
Expand Down Expand Up @@ -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;
}

Expand All @@ -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);
}
Expand Down

0 comments on commit 3898df3

Please sign in to comment.