package org.rocko.touchlistener.subclasses;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.widget.AutoScrollHelper;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.Menu;
import android.view.MenuItem;
import org.rocko.touchlistener.subclasses.adapter.SimpleRecylerViewAdapter;
import org.rocko.touchlistener.subclasses.widget.RecyclerViewAutoScrollHelper;
/**
* Created by Administrator on 2015/4/25.
*/
public class RecyclerViewActivity extends AppCompatActivity {
protected RecyclerView recyclerView;
protected LinearLayoutManager linearLayoutManager;
protected StaggeredGridLayoutManager staggeredGridLayoutManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recylerview);
setSupportActionBar((android.support.v7.widget.Toolbar) findViewById(R.id.toolbar));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("RecyclerViewAutoScroll");
init();
}
private void init() {
recyclerView = (RecyclerView) findViewById(R.id.recyler_view);
linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
staggeredGridLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(new SimpleRecylerViewAdapter(this, getData(100)));
AutoScrollHelper autoScrollHelper = new RecyclerViewAutoScrollHelper(recyclerView);
autoScrollHelper.setEnabled(true);
recyclerView.setOnTouchListener(autoScrollHelper);
}
private String[] getData(int size) {
String[] result = new String[size];
for (int i = 0; i < size; i++) {
result[i] = "item " + i;
}
return result;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_recyclerview, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
case R.id.action_linearLayout_manager_HORIZONTAL:
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(linearLayoutManager);
break;
case R.id.action_linearLayout_manager_VERTICAL:
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
break;
case R.id.action_staggered_gridlayout_manager_VERTICAL:
staggeredGridLayoutManager.setOrientation(StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
break;
case R.id.action_staggered_gridlayout_manager_HORIZONTAL:
staggeredGridLayoutManager.setOrientation(StaggeredGridLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
break;
}
return super.onOptionsItemSelected(item);
}
}