package com.example.recyclerview;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity implements MyAdapter.OnChildClickListener {
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recycler=(RecyclerView) findViewById(R.id.recycler);
List<String> list=new ArrayList<String>();
for(int i=0;i<100;i++){
list.add(String.format(Locale.CHINA, "第%03d条数据",i));
}
adapter=new MyAdapter(this, list);
/**
* 在java代码中使用LinearLayoutManager,不在布局文件中使用
*/
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
GridLayoutManager gridLayoutManager=new GridLayoutManager(this, 3);
DefaultItemAnimator defaultItemAnimator=new DefaultItemAnimator();
recycler.setLayoutManager(gridLayoutManager);
recycler.setItemAnimator(defaultItemAnimator);
recycler.setAdapter(adapter);
adapter.setOnChildClickListnener(this);
}
/**
* 点击事件
*/
@Override
public void onChildClick(RecyclerView parent, View view, int position,
String data) {
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
adapter.remove(position);
}
}
控制间距:
package com.example.recyclerview;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import android.R.color;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.State;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity implements MyAdapter.OnChildClickListener {
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recycler=(RecyclerView) findViewById(R.id.recycler);
List<String> list=new ArrayList<String>();
for(int i=0;i<100;i++){
list.add(String.format(Locale.CHINA, "第%03d条数据",i));
}
adapter=new MyAdapter(this, list);
/**
* 在java代码中使用LinearLayoutManager,不在布局文件中使用
*/
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
GridLayoutManager gridLayoutManager=new GridLayoutManager(this, 3);
DefaultItemAnimator defaultItemAnimator=new DefaultItemAnimator();
recycler.setLayoutManager(gridLayoutManager);
recycler.setItemAnimator(defaultItemAnimator);
recycler.setAdapter(adapter);
/**
* 设置行间距
*/
recycler.addItemDecoration(new RecyclerView.ItemDecoration() {
@Override
public void onDraw(Canvas c, RecyclerView parent, State state) {
super.onDraw(c, parent, state);
c.drawColor(color.black);
}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, State state) {
super.onDrawOver(c, parent, state);
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, State state) {
super.getItemOffsets(outRect, view, parent, state);
outRect.set(0,5,0,5);
}
});
adapter.setOnChildClickListnener(this);
}
/**
* 点击事件
*/
@Override
public void onChildClick(RecyclerView parent, View view, int position,
String data) {
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
adapter.remove(position);
}
}