Skip to content

Commit eb2abbb

Browse files
committed
A LinearLayoutManager like LayoutManager.
1 parent ea2a24e commit eb2abbb

File tree

5 files changed

+278
-97
lines changed

5 files changed

+278
-97
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
Demonstrate how to custom `RecycleView#LayoutManager`
44

5-
## LICENSE
5+
## Iterative
6+
7+
### v1.0
8+
9+
## License
610

711
```
812
Copyright 2016 HelloCsl

app/src/main/java/github/hellocsl/gallerylayoutmanager/MainActivity.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
import android.os.Bundle;
44
import android.support.v7.app.AppCompatActivity;
5+
import android.support.v7.widget.LinearLayoutManager;
56
import android.support.v7.widget.RecyclerView;
7+
import android.view.View;
8+
import android.view.ViewGroup;
9+
import android.widget.TextView;
10+
import android.widget.Toast;
611

712
import java.util.ArrayList;
813
import java.util.List;
@@ -18,6 +23,10 @@ public class MainActivity extends AppCompatActivity {
1823
RecyclerView mMainRecycle1;
1924
@BindView(R.id.main_recycle2)
2025
RecyclerView mMainRecycle2;
26+
@BindView(R.id.main_tv_recycle_info_1)
27+
TextView mMainTv1;
28+
@BindView(R.id.main_tv_recycle_info_2)
29+
TextView mMainTv2;
2130

2231
@Override
2332
protected void onCreate(Bundle savedInstanceState) {
@@ -35,12 +44,31 @@ private void initView() {
3544
}
3645
GalleryLayoutManager layoutManager1 = new GalleryLayoutManager(this, GalleryLayoutManager.HORIZONTAL);
3746
mMainRecycle1.setLayoutManager(layoutManager1);
38-
DemoAdapter demoAdapter1 = new DemoAdapter(title);
47+
DemoAdapter demoAdapter1 = new DemoAdapter(title) {
48+
@Override
49+
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
50+
mMainTv1.append("onCreateViewHolder\n");
51+
return super.onCreateViewHolder(parent, viewType);
52+
}
53+
};
54+
demoAdapter1.setOnItemClickListener(new DemoAdapter.OnItemClickListener() {
55+
@Override
56+
public void onItemClick(View view, int position) {
57+
Toast.makeText(MainActivity.this, "position:" + position, Toast.LENGTH_SHORT).show();
58+
}
59+
});
3960
mMainRecycle1.setAdapter(demoAdapter1);
4061

41-
GalleryLayoutManager layoutManager2 = new GalleryLayoutManager(this, GalleryLayoutManager.VERTICAL);
62+
LinearLayoutManager layoutManager2 = new LinearLayoutManager(this);
63+
layoutManager2.setOrientation(LinearLayoutManager.VERTICAL);
4264
mMainRecycle2.setLayoutManager(layoutManager2);
43-
DemoAdapter demoAdapter2 = new DemoAdapter(title);
65+
DemoAdapter demoAdapter2 = new DemoAdapter(title) {
66+
@Override
67+
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
68+
mMainTv2.append("onCreateViewHolder\n");
69+
return super.onCreateViewHolder(parent, viewType);
70+
}
71+
};
4472
mMainRecycle2.setAdapter(demoAdapter2);
4573

4674
}

app/src/main/java/github/hellocsl/gallerylayoutmanager/adapter/DemoAdapter.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
package github.hellocsl.gallerylayoutmanager.adapter;
22

33
import android.support.v7.widget.RecyclerView;
4+
import android.util.Log;
45
import android.view.LayoutInflater;
56
import android.view.View;
67
import android.view.ViewGroup;
78
import android.widget.TextView;
89

910
import java.util.List;
1011

12+
import github.hellocsl.gallerylayoutmanager.BuildConfig;
1113
import github.hellocsl.gallerylayoutmanager.R;
1214

1315

1416
/**
1517
* Created by chensuilun on 2016/11/15.
1618
*/
1719
public class DemoAdapter extends RecyclerView.Adapter<DemoAdapter.ViewHolder> implements View.OnClickListener {
18-
20+
private static final String TAG = "DemoAdapter";
1921
private List<String> items;
2022
private OnItemClickListener mOnItemClickListener;
2123

@@ -30,15 +32,21 @@ public DemoAdapter setOnItemClickListener(OnItemClickListener onItemClickListene
3032

3133
@Override
3234
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
35+
if (BuildConfig.DEBUG) {
36+
Log.e(TAG, "onCreateViewHolder: ");
37+
}
3338
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycle_demo, parent, false);
3439
v.setOnClickListener(this);
3540
return new ViewHolder(v);
3641
}
3742

3843
@Override
3944
public void onBindViewHolder(ViewHolder holder, int position) {
45+
if (BuildConfig.DEBUG) {
46+
Log.d(TAG, "onBindViewHolder: position:" + position);
47+
}
4048
String item = items.get(position);
41-
holder.text.setText(item);
49+
holder.text.setText("HelloWork:" + item);
4250
holder.itemView.setTag(position);
4351
}
4452

0 commit comments

Comments
 (0)