新的控件RecyclerView出現,快速實作GridView、ListView效果,
最近仔細研究的了下,實作了下Listview效果,不說了,直接上代碼:
Listview效果
MainActivity:
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private SwipeRefreshLayout mSwipeRefreshWidget;
private List<String> mList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSwipeRefreshWidget = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_widget);
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
for (int i=;i<;i++){
mList.add(i,"資料:"+i);
}
recyclerviewadapter adapter=new recyclerviewadapter(getApplicationContext(),mList);
mRecyclerView.setAdapter(adapter);
ItemDecoration itemDecoration=new ItemDecoration();
mRecyclerView.addItemDecoration(itemDecoration);
mItemAnimator mItemAnimator=new mItemAnimator();
mRecyclerView.setItemAnimator(mItemAnimator);
//設定網格布局管理器
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
}
}
activity.xml:
這裡有使用谷歌的下拉重新整理控件,不要的話,直接删除,換成其它布局即可
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout 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"
android:id="@+id/swipe_refresh_widget"
tools:context="meng.qiniuyun.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:dividerHeight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
ItemDecoration:
public class ItemDecoration extends RecyclerView.ItemDecoration {
public int it;
public ItemDecoration(int it){
this.it=it;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.left=it;
outRect.right=it;
outRect.bottom=it;
if(parent.getChildAdapterPosition(view)==){
outRect.top=it;
}
}
}
recyclerviewadapter:
/**
* 擴充卡
* Created by Administrator on 2016/10/7 0007.
*/
public class recyclerviewadapter extends RecyclerView.Adapter<recyclerviewadapter.mViewHolder> {
private List<String> DataList=new ArrayList<>();
private Context ctx;
private LayoutInflater mInflater;
public recyclerviewadapter(Context applicationContext, List<String> mList) {
this.ctx=applicationContext;
this.DataList=mList;
mInflater=LayoutInflater.from(applicationContext);
}
@Override
public mViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v=mInflater.inflate(R.layout.recyclerview_item,parent, Boolean.parseBoolean(null));
mViewHolder mHolder=new mViewHolder(v);
return mHolder;
}
@Override
public void onBindViewHolder(mViewHolder holder, int position) {
holder.mTextView.setText(DataList.get(position));
}
@Override
public int getItemCount() {
return DataList.size();
}
class mViewHolder extends RecyclerView.ViewHolder{
private TextView mTextView;
public mViewHolder(View itemView) {
super(itemView);
mTextView= (TextView) itemView.findViewById(R.id.tv_textview);
}
}
}
**有什麼問題給我留言