package github.nisrulz.sample.snaphelper;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.LinearSnapHelper;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SnapHelper;
import android.view.Gravity;
import com.github.rubensousa.gravitysnaphelper.GravitySnapHelper;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<Item> items;
private RecyclerView recyclerViewSnapCenter, recyclerViewSnapStart, recyclerViewSnapEnd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get ref to all views
recyclerViewSnapCenter = (RecyclerView) findViewById(R.id.recycler_view_snap_center);
recyclerViewSnapStart = (RecyclerView) findViewById(R.id.recycler_view_snap_start);
recyclerViewSnapEnd = (RecyclerView) findViewById(R.id.recycler_view_snap_end);
// Dummy list
createAppsList();
// Setup adapter
SnapRecyclerAdapter adapter = new SnapRecyclerAdapter(items, this);
// Snap Center
SnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(recyclerViewSnapCenter);
recyclerViewSnapCenter.setAdapter(adapter);
recyclerViewSnapCenter.setLayoutManager(
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
// Using library : GravitySnapHelper
// Snap Start
SnapHelper snapHelperGravityStart = new GravitySnapHelper(Gravity.START);
snapHelperGravityStart.attachToRecyclerView(recyclerViewSnapStart);
recyclerViewSnapStart.setAdapter(adapter);
recyclerViewSnapStart.setLayoutManager(
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
// Snap End
SnapHelper snapHelperGravityEnd = new GravitySnapHelper(Gravity.END);
snapHelperGravityEnd.attachToRecyclerView(recyclerViewSnapEnd);
recyclerViewSnapEnd.setAdapter(adapter);
recyclerViewSnapEnd.setLayoutManager(
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
}
private void createAppsList() {
items = new ArrayList<>();
items.add(new Item("Google+", R.drawable.googleplus));
items.add(new Item("Facebook", R.drawable.facebook));
items.add(new Item("LinkedIn", R.drawable.linkedin));
items.add(new Item("Youtube", R.drawable.youtube));
items.add(new Item("Instagram", R.drawable.instagram));
items.add(new Item("Skype", R.drawable.skype));
items.add(new Item("Twitter", R.drawable.twitter));
items.add(new Item("Pininterest", R.drawable.pinterest));
items.add(new Item("Whatsapp", R.drawable.whatsapp));
items.add(new Item("Spotify", R.drawable.spotify));
}
}