package com.rendernode.test.demos; import android.os.Bundle; import com.glview.support.v7.widget.LinearLayoutManager; import com.glview.support.v7.widget.RecyclerView; import com.glview.support.v7.widget.RecyclerView.OnScrollListener; import com.glview.transition.Slide; import com.glview.transition.TransitionManager; import com.glview.view.Gravity; import com.glview.view.View; import com.glview.view.ViewGroup; import com.glview.widget.Button; import com.rendernode.test.R; import com.rendernode.test.adapter.RecyclerViewAdapter; import com.rendernode.test.adapter.RecyclerViewAdapter.OnItemClickListener; public class RecyclerViewActivity extends BaseActivity { RecyclerView mRecyclerView; RecyclerViewAdapter mAdapter; LinearLayoutManager mLayoutManager; Button mDelete; boolean shown = false; ViewGroup mRoot; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setGLContentView(R.layout.activity_recycler_view); } @Override public void onAttached(View content) { super.onAttached(content); mRoot = (ViewGroup) content.findViewById(R.id.root); mRecyclerView = (RecyclerView) content.findViewById(R.id.recycler_view); mDelete = (Button) content.findViewById(R.id.delete); mAdapter = new RecyclerViewAdapter(); mRecyclerView.setAdapter(mAdapter); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(View v, int position) { mAdapter.removeItem(position); } }); mRecyclerView.setOnScrollListener(new OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); if (dy > 0) { if (!shown) { TransitionManager.beginDelayedTransition(mRoot); mDelete.setVisibility(View.VISIBLE); shown = true; } } else if (shown) { TransitionManager.beginDelayedTransition(mRoot); mDelete.setVisibility(View.INVISIBLE); shown = false; } } }); } public void click(View v) { switch (v.getId()) { case R.id.add: { int pos = mLayoutManager.findFirstCompletelyVisibleItemPosition(); mAdapter.addItem(pos); break; } case R.id.delete: { int pos = mLayoutManager.findFirstCompletelyVisibleItemPosition(); mAdapter.removeItem(pos); break; } default: break; } } }