Skip to content

Commit

Permalink
Samples setup
Browse files Browse the repository at this point in the history
  • Loading branch information
leruaa committed Sep 23, 2014
1 parent dea61e6 commit ff7aad9
Show file tree
Hide file tree
Showing 16 changed files with 406 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void onDrawOver(Canvas c, RecyclerView parent) {
for (int i = childCount - 1; i >= 0; i--) {
final View child = parent.getChildAt(i);
final RecyclerView.ViewHolder itemViewHolder = parent.getChildViewHolder(child);
currentHeaderId = getHeaderId(itemViewHolder);
currentHeaderId = getHeaderId(itemViewHolder, itemViewHolder.getPosition());

if (i == 0 || !currentHeaderId.equals(getHeaderId(parent, i - 1))) {

Expand All @@ -78,7 +78,7 @@ public void onDrawOver(Canvas c, RecyclerView parent) {
@Override
public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {

if (itemPosition != 0 && getHeaderId(parent.findViewHolderForPosition(itemPosition)) == getHeaderId(parent.findViewHolderForPosition(itemPosition - 1))) {
if (itemPosition != 0 && getHeaderId(parent.findViewHolderForPosition(itemPosition), itemPosition) == getHeaderId(parent.findViewHolderForPosition(itemPosition - 1), itemPosition)) {
outRect.set(0, 0, 0, 0);
}
else {
Expand Down Expand Up @@ -125,15 +125,15 @@ private long getHeaderId(RecyclerView parent, int childPosition) {
final View child = parent.getChildAt(childPosition);
final RecyclerView.ViewHolder itemViewHolder = parent.getChildViewHolder(child);

return getHeaderId(itemViewHolder);
return getHeaderId(itemViewHolder, itemViewHolder.getPosition());
}

private long getHeaderId(RecyclerView.ViewHolder itemViewHolder) {
if (!headersIds.containsKey(itemViewHolder.getPosition())) {
private long getHeaderId(RecyclerView.ViewHolder itemViewHolder, int dataSetPosition) {
if (!headersIds.containsKey(dataSetPosition)) {
headersIds.put(itemViewHolder.getPosition(), adapter.getHeaderId(itemViewHolder, itemViewHolder.getPosition()));
}

return headersIds.get(itemViewHolder.getPosition());
return headersIds.get(dataSetPosition);
}

}
13 changes: 13 additions & 0 deletions samples/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apply plugin: 'com.android.application'


dependencies {
compile project(':library')
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:appcompat-v7:20.+'
}

android {
compileSdkVersion 'android-L'
buildToolsVersion '20.0.0'
}
15 changes: 15 additions & 0 deletions samples/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eowise.recyclerview.stickyheaders.samples">

<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.eowise.recyclerview.stickyheaders.samples;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.eowise.recyclerview.stickyheaders.HeaderPosition;
import com.eowise.recyclerview.stickyheaders.StickyHeadersItemDecoration;
import com.eowise.recyclerview.stickyheaders.samples.adapters.PersonAdapter;
import com.eowise.recyclerview.stickyheaders.samples.adapters.PersonInitialAdapter;

/**
* Created by aurel on 22/09/14.
*/
public class MainActivity extends Activity {

private RecyclerView list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

list = (RecyclerView)findViewById(R.id.list);

list.setAdapter(new PersonAdapter());
list.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
list.addItemDecoration(new StickyHeadersItemDecoration(new PersonInitialAdapter(), list, HeaderPosition.OVERLAY));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
package com.eowise.recyclerview.stickyheaders.samples.adapters;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.eowise.recyclerview.stickyheaders.samples.R;

/**
* Created by aurel on 22/09/14.
*/
public class PersonAdapter extends RecyclerView.Adapter<PersonAdapter.ViewHolder> {

String[] items = {
"Abram Tavernia",
"Alexa Oquin",
"Alvin Lainez",
"Alyce Rakestraw",
"Angel Scruggs",
"Annabel Wardle",
"Ardella Hollinger",
"Arlean Drewes",
"Armida Carasco",
"Asa Modeste",
"Ashlea Aguillard",
"Aurore Maris",
"Bao Godbold",
"Bettye Wenger",
"Bill Thatch",
"Brad Amis",
"Bridget Goulette",
"Bryan Rarick",
"Camie Malcolm",
"Caridad Nesbitt",
"Carleen Maul",
"Carmelo Ehrmann",
"Caroll Ruben",
"Cherryl Suter",
"Christeen Bonner",
"Christene Thrailkill",
"Cindie Luong",
"Claudio Llanos",
"Cleveland Selvage",
"Clint Cullen",
"Clora Graybeal",
"Cristin Culton",
"Crysta Bolt",
"Cuc Hetzel",
"Daine Cumbie",
"Danuta Villalta",
"Darci Quick",
"Darius Hermes",
"Delaine Evins",
"Delpha Godin",
"Dexter Bencomo",
"Dione Rhines",
"Donella Blumstein",
"Dorene Kisling",
"Dudley Benavides",
"Dulce Demille",
"Ebonie Wallis",
"Effie Wiley",
"Elayne Munro",
"Elisha Funches",
"Elna Padua",
"Emmy Denk",
"Farrah Delosantos",
"Frieda Buesing",
"Gilda Tse",
"Gina Dufault",
"Giovanna Schepis",
"Glayds Mcguigan",
"Glinda Dunagan",
"Gwenda Fraser",
"Hai Oday",
"Halley Holscher",
"Hellen Baillie",
"Herbert Renninger",
"Hobert Yopp",
"Hollis Haubert",
"Hui Lupien",
"Ileen Mccasland",
"Imelda Moser",
"Ione Littlewood",
"Jacalyn Gressett",
"Jacquelyn Butter",
"Jade Churchwell",
"Jami Selph",
"Janeth Ringwood",
"Jeffry Carcamo",
"Jerlene Zellers",
"Jerome Tomko",
"Jerrod Rother",
"Jettie Conner",
"Joaquin Keplinger",
"Joette Healey",
"Jorge Molina",
"Juana Olds",
"Jules Friley",
"Julio Krier",
"Kareen Bergey",
"Katharyn Doten",
"Katherine Ragsdale",
"Kathryn Edgington",
"Katia Hock",
"Keeley Pass",
"Kendrick Moncada",
"Kenyetta Wick",
"Kimber Boulware",
"Kitty Manthe",
"Kristan Blake",
"Lakeisha Medlin",
"Lakesha Voth",
"Lanora Pair",
"Lashon Abramson",
"Laurie Campa",
"Laurinda Barcus",
"Lavern Puig",
"Lera Mckibben",
"Long Show",
"Louanne Garling",
"Louella Petillo",
"Lucinda Sockwell",
"Lyla Fitzsimons",
"Mackenzie Ooten",
"Malia Claiborne",
"Manie Yarberry",
"Marchelle Halcomb",
"Marcie Augusta",
"Marguerita Tenaglia",
"Mari Sheperd",
"Mariela Ruggieri",
"Marielle Connolly",
"Marilyn Franck",
"Marisol Marmolejo",
"Marth Pitchford",
"Marty Cobey",
"Maximo Thornburg",
"Meggan Plumadore",
"Mellissa Schnitzer",
"Melodie Kitch",
"Mimi File",
"Mina Nolte",
"Mira Archuleta",
"Modesto Higgenbotham",
"Mohammed Orr",
"Morgan Maddy",
"Morgan Mensch",
"Moriah Grubb",
"Nedra Dyson",
"Norene Nelms",
"Odis Mill",
"Ok Hutter",
"Olin Bolander",
"Otilia Dejulio",
"Otis Shore",
"Patrina Crystal",
"Philip Wengert",
"Porter Ketner",
"Rhiannon Lavoie",
"Richard Domingues",
"Rochell Molock",
"Rosalva Gutman",
"Rosalyn Pesce",
"Rosaria Rosengarten",
"Roxane Clayborn",
"Rozanne Mahaney",
"Sal Wilkinson",
"Saundra Lundahl",
"Scotty Ralph",
"Seema Boots",
"Selena Eisenhower",
"Shae Hellard",
"Shae Latz",
"Shantay Wilcox",
"Shawnda Kees",
"Shayne Cutler",
"Shenita Cassette",
"Sherie Culp",
"Sherrie Poole",
"Shirley Cliett",
"Shizue Alcaraz",
"Sid Streets",
"Stacia Twellman",
"Stasia Slay",
"Stephen Eagles",
"Svetlana Hallam",
"Tambra Buchner",
"Tamie Branham",
"Tammera Hutt",
"Tawanna Rameriz",
"Tawna Seim",
"Terisa Whitbeck",
"Terresa Brantley",
"Terri Barnaby",
"Tinisha Gammill",
"Todd Netter",
"Toshiko Skowron",
"Traci Schurr",
"Trish Perino",
"Tyesha Bruemmer",
"Valda Skyles",
"Vella Montilla",
"Venita Richarson",
"Vera Noffsinger",
"Vinnie Gobeil",
"Waltraud Nelsen",
"Wendy Zachery",
"Willard Qualls",
"Willetta Zucker",
"Yen Staton",
"Yolonda Hadnott",
"Yoshie Califano",
"Yu Schilke"
};

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item, viewGroup, false);

return new ViewHolder(itemView);

}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.label.setText(items[position]);
}

@Override
public int getItemCount() {
return items.length;
}

public static class ViewHolder extends RecyclerView.ViewHolder {

TextView label;

public ViewHolder(View itemView) {
super(itemView);
label = (TextView) itemView.findViewById(R.id.name);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.eowise.recyclerview.stickyheaders.samples.adapters;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.eowise.recyclerview.stickyheaders.StickyHeadersAdapter;
import com.eowise.recyclerview.stickyheaders.samples.R;

/**
* Created by aurel on 23/09/14.
*/
public class PersonInitialAdapter implements StickyHeadersAdapter<PersonAdapter.ViewHolder, PersonInitialAdapter.ViewHolder> {

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.letter_header, parent, false);

return new ViewHolder(itemView);
}

@Override
public void onBindViewHolder(ViewHolder headerViewHolder, PersonAdapter.ViewHolder itemViewHolder, int position) {
headerViewHolder.letter.setText(itemViewHolder.label.getText().subSequence(0, 1));
}

@Override
public long getHeaderId(PersonAdapter.ViewHolder viewHolder, int position) {
return viewHolder.label.getText().charAt(0);
}

public static class ViewHolder extends RecyclerView.ViewHolder {

TextView letter;

public ViewHolder(View itemView) {
super(itemView);
letter = (TextView) itemView.findViewById(R.id.letter);
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ff7aad9

Please sign in to comment.