Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item
生活随笔
收集整理的這篇文章主要介紹了
Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、添加recycleview依賴
compile('com.android.support:recyclerview-v7:25.1.1') {force = true }2、item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:melove="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:id="@+id/item_company_member_layout"android:layout_width="80dp"android:layout_height="90dp"><ImageViewandroid:id="@+id/item_information_choose_image"android:layout_width="15dp"android:layout_height="15dp"android:layout_alignParentRight="true"android:layout_marginRight="12dp"android:src="@drawable/ic_launcher_background"android:visibility="invisible"/><ImageViewandroid:id="@+id/item_company_member_head_image"android:layout_width="44dp"android:layout_height="44dp"android:layout_below="@+id/item_information_choose_image"android:layout_centerHorizontal="true"android:scaleType="centerCrop"android:src="@drawable/ic_launcher_background"/><TextViewandroid:id="@+id/item_company_member_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_below="@+id/item_company_member_head_image"android:layout_centerHorizontal="true"android:text="林曉"android:textSize="12sp"/></RelativeLayout></LinearLayout>3、entity.class
/*** 作者:created by meixi* 郵箱:13164716840@163.com* 日期:2018/8/30 10*/ public class TestEntity {private String title;private String https;private boolean ifshow;public boolean isIfshow() {return ifshow;}public void setIfshow(boolean ifshow) {this.ifshow = ifshow;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getHttps() {return https;}public void setHttps(String https) {this.https = https;} }4、adapter.class
public class NewgroupsAdapter extends RecyclerView.Adapter<NewgroupsAdapter.ViewHolder> {private List<TestEntity> entityList;private Context context;private OnItemClickListener mOnItemClickListener;private OnItemClickListenerupd mOnItemClickListenerupd;private Boolean is_edit = false;public NewgroupsAdapter(Context context, List<TestEntity> list) {this.context = context;this.entityList = list;}public void setEdit() {//activity刷新adapter方法is_edit = !is_edit;notifyDataSetChanged();}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(context).inflate(R.layout.item_add_groups_number, null);ViewHolder holder = new ViewHolder(view);holder.imageView = (ImageView)view.findViewById(R.id.item_information_choose_image);holder.textView = (TextView) view.findViewById(R.id.item_company_member_name);return holder;}@Overridepublic void onBindViewHolder(final ViewHolder holder, final int position) {final TestEntity entity = entityList.get(position);if (is_edit) {holder.imageView.setVisibility(View.VISIBLE);} else {holder.imageView.setVisibility(View.GONE);}holder.textView.setText(entity.getTitle());//標題holder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {mOnItemClickListenerupd.onItemClick(position);}});holder.textView.setOnClickListener(new View.OnClickListener() {//點擊刪除@Overridepublic void onClick(View view) {if (is_edit) {}else {mOnItemClickListener.onItemClick(holder.itemView, position); // 2}}});}@Overridepublic int getItemCount() {return entityList.size();}public class ViewHolder extends RecyclerView.ViewHolder {public ImageView imageView;public TextView textView;public ViewHolder(View view) {super(view);}}public interface OnItemClickListener {void onItemClick(View view, int position);}public void setOnItemminiClickListener(OnItemClickListener mOnItemClickListener) {//元素點擊this.mOnItemClickListener = mOnItemClickListener;}public interface OnItemClickListenerupd {void onItemClick( int position);}public void setOnItemClickListener(OnItemClickListenerupd mOnItemClickListener) {//item點擊this.mOnItemClickListenerupd = mOnItemClickListener;}}5、activity調用詳解
?
private List<TestEntity> testEntities = new ArrayList<>(); private RecyclerView recyclerView; private NewgroupsAdapter newgroupsAdapter;?
private void initRecyclerView() {recyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);newgroupsAdapter = new NewgroupsAdapter(MainActivity.this, testEntities);newgroupsAdapter.setOnItemminiClickListener(new NewgroupsAdapter.OnItemClickListener() {@Overridepublic void onItemClick( View view,int posi) {Toast.makeText(MainActivity.this,posi+"",Toast.LENGTH_LONG).show();}});newgroupsAdapter.setOnItemClickListener(new NewgroupsAdapter.OnItemClickListenerupd() {@Overridepublic void onItemClick(int position) {Toast.makeText(MainActivity.this,position+"max",Toast.LENGTH_LONG).show();}}); // recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 5));//橫向布局,九宮格recyclerView.setLayoutManager(new LinearLayoutManager(this));//豎向布局,默認recyclerView.setAdapter(newgroupsAdapter);}橫向線性布局
LinearLayoutManager linearLayoutManagerHor = new LinearLayoutManager(getContext()); linearLayoutManagerHor.setOrientation(LinearLayoutManager.HORIZONTAL);mRecycleviewHorlayout.setLayoutManager(linearLayoutManagerHor);?
給recycleview 賦值
for (int i=0;i<29;i++){TestEntity testEntity = new TestEntity();testEntity.setHttps("baidu.com");testEntity.setTitle("百度。com");testEntities.add(testEntity);if (i==28){newgroupsAdapter.notifyDataSetChanged();} }?
recycleview設置item占位數量
GridLayoutManager layoutManage = new GridLayoutManager(this, 2); layoutManage.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {@Overridepublic int getSpanSize(int position) {if (tagBeanList.get(position).getTag_name().length()>MAX)//判斷條件,如大號item或者小號itemreturn 2;return 1;} }); tagRecyclerView.setLayoutManager(layoutManage);總結
以上是生活随笔為你收集整理的Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nachos操作系统-文件系统添加多级目
- 下一篇: Android Studio如何导出可供