参考链接: 1、http://www.2cto.com/kf/201511/450814.html
2、http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2004.html
XML(RecyclerView)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tcs.myapplication.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</RelativeLayout>
属性: android:scrollbars="vertical"
scrollbars:右边或者底部位置导航;可选horizontal\vertical\none
---------------------------------------------------------------------------------------------------------------------------------------------------------
XML(Item)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text"
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="center"
android:textColor="#fff"
/>
</RelativeLayout>
---------------------------------------------------------------------------------------------------------------------------------------------------------
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
//线性布局(横向/纵向滚动)管理器
LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(this);
//设置Item的滚动方向
mLinearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
//表格布局管理器
//GridLayoutManager mGridLayoutManager=new GridLayoutManager(this,4);
//mLinearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
//设置瀑布流布局管理器
//StaggeredGridLayoutManager mStaggeredGridLayoutManager = new StaggeredGridLayoutManager(4, OrientationHelper.VERTICAL);
//mStaggeredGridLayoutManager.setOrientation(OrientationHelper.VERTICAL);
MyAdapter myAdapter = new MyAdapter();
if (mRecyclerView != null) {
//设置固定大小,如果可以确定每个item的高度是固定的,设置这个选项可以提高性能;
//当使用瀑布流布局,Item布局大小不定,需要设置为False
mRecyclerView.setHasFixedSize(true);
//设置线性布局
mRecyclerView.setLayoutManager(mLinearLayoutManager);
//设置表格布局
//mRecyclerView.setLayoutManager(mGridLayoutManager);
//设置瀑布流布局
//mRecyclerView.setLayoutManager(mStaggeredGridLayoutManager);
mRecyclerView.setAdapter(myAdapter);
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
Adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
public LayoutInflater mLayoutInflater;
public List<String> mList;
public MyAdapter() {
mLayoutInflater = MainActivity.this.getLayoutInflater();
mList = new ArrayList<>();
for (int i = 0; i < 50; i++) {
mList.add("item" + i);
}
}
//创建新View,被LayoutManager所调用
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = mLayoutInflater.inflate(R.layout.item, null);
return new ViewHolder(v);
}
//将数据与界面进行绑定的操作
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
holder.mTextView.setText(mList.get(position));
if (position % 2 == 0) {
holder.mTextView.setBackgroundColor(Color.BLUE); //双数则设置背景为蓝色
} else {
holder.mTextView.setBackgroundColor(Color.GRAY); //单数则设置背景为灰色
}
}
//获取数据的数量
@Override
public int getItemCount() {
return mList.size();
}
//自定义的ViewHolder,持有每个Item的的所有界面元素
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(View itemView) {
super(itemView);
mTextView = (TextView) itemView.findViewById(R.id.text);
}
}
}