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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cesium billboard 点击 不想显示infobox

cesium的一些实体默认点击&#xff0c;会弹出infobox。 如果不想弹出&#xff0c; 初始化的时候加上参数infoBox: false。 不想显示选中&#xff0c; 初始化的时候加上参数selectionIndicator: false。 示例&#xff1a; var viewer new Cesium.Viewer(cesiumContainer,…

工作168:代码中的删除逻辑处理

1首先找到对应方法里面的删除方法 2点击之后进行删除操作 在当前方法里面直接进行混入删除 删除结束

java如何对List集合中的元素进行排序(请收藏)

在java开发中有时候我们需要对List集合中的元素按照一定的规则进行排序&#xff0c;比如说有个Person的集合&#xff0c;我们要根据Person的age属性进行排序输出&#xff0c;这就需要用到Java中提供的对集合进行操作的工具类Collections&#xff0c;其中的sort方法&#xff0c;…

cesium面板动态显示并跟随移动

我的需求&#xff0c;首先显示一个billboard&#xff0c;点击billboard后&#xff0c;在旁边显示一个div面板&#xff0c;并且该面板随着地图拖拽也能进行相对运动。 概要实现步骤&#xff1a; 1、自定义div面板&#xff0c;面板需要设置id值 2、使用我自己定义的函数&#…

工作169:删除操作

this.$confirm(你正在进行删除操作, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning}).then(()>{deleteAction(path.join(this.url.delete, record.id))this.$message.success(res.msg);}).catch((err)>{this.$message.warning(err);})

Android 设置view透明度,广告标题透明背景

android:alpha"0.8" <ImageViewandroid:layout_width"match_parent"android:layout_height"match_parent"android:alpha"0.8"android:background"drawable/bantouheibg"/> colors<!-- 透明色 --> <color na…

bootstrapselect使用 Bootstrap's dropdowns require Popper.js

虽然我目前喜欢用vue&#xff0c;但是有一些项目会用bootstrap进行配合。 下面介绍一款bootstrap生态链的插件&#xff1a;bootstrapselect。 官网地址&#xff1a;https://www.bootstrapselect.cn/ 特别要注意一点&#xff0c;引入bootstrapselect前要先引入popper.js。 由…

Android recycleview实现混合itemview,以及recycleview添加头部尾部

需要引入的module链接&#xff1a;https://pan.baidu.com/s/1kcVye2vT4M0mdCtzYpUVKw 添加module方法步骤&#xff1a;https://blog.csdn.net/meixi_android/article/details/84655666 1、主要adapter /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;131647168401…

工作170:删除做个判断操作 成功删除 取消取消

this.$confirm(你正在进行删除操作, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning}).then((res)>{deleteAction(path.join(this.url.delete, record.id))this.$message.success(res);}).catch((err)>{this.$message.warning(err);})

docker 报错 Container is not running

我在运行docker exec -it 56b90db5253e /bin/bash报错。 出现这个问题&#xff0c;是因为Container容器之前已经启动过了 需要执行docker start 56b90db5253e就可以解决了。

Android侧滑删除-RecyclerView轻松实现高效的侧滑菜单

1 删除整个RecyclerView hisList.clear(); hisAdapter.notifyDataSetChanged(); mScanListAdapter.setNewData(null); 刚开始只是使用了list.clear() 方法就是没有效果&#xff0c;最后想起来了忘记了notifyDataSetChanged 刷新了 2 RecyclerView 删除Item hisList.remov…

返回数组中的最大数 -freeCodeCamp

找出多个数组中的最大数 右边大数组中包含了4个小数组&#xff0c;分别找到每个小数组中的最大值&#xff0c;然后把它们串联起来&#xff0c;形成一个新数组。 给出的数组如下&#xff1a; largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 85…

前端学习(2645):懂代码之header表头页之未读消息

<!-- 消息中心 --><div class"btn-bell"><el-tooltipeffect"dark":content"message?有${message}条未读消息:消息中心"placement"bottom"><router-link to"/tabs"><i class"el-icon-bell&…

cesium事件简单全面描述

我在开发中&#xff0c;需要一个功能&#xff0c;时时获取经纬度和相机角度。需要对cesium中对事件实现监听。 cesium事件主要几大类类型&#xff1a; 1、鼠标事件&#xff1a;ScreenSpaceEventType 2、键盘事件&#xff1a;KeyboardEventModifier 3、相机事件&#xff1a;Ca…

HTML标签总结

一、文字1.标题文字 <h#>..........</h#> #1~6&#xff1b;h1为最大字&#xff0c;h6为最小字2.字体变化 <font>..........</font> 【1】字体大小 <font size#>..........</font> #1~7&#xff1b;数字愈大字也愈大 【2】指定字型 <fon…

Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件

mainactivity返回桌面代码&#xff1a; activity下添加如下代码即可: Override public void onBackPressed() {Intent home new Intent(Intent.ACTION_MAIN);home.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);home.addCategory(Intent.CATEGORY_HOME);startActivity(home);} …

js cesium 中弧度、角度转化

参考如下代码&#xff1a; const { heading, pitch, roll } viewer.camera; console.log({ heading, pitch, roll }); // 弧度 const radians Cesium.Math.toRadians(heading) console.log(radians) // 角度 const degrees radians * (180 / Math.PI); console.log(degrees…

一个jdbc connection连接对应一个事务

Spring保证在methodB方法中所有的调用都获得到一个相同的连接。在调用methodB时&#xff0c;没有一个存在的事务&#xff0c;所以获得一个新的连接&#xff0c;开启了一个新的事务。 Spring保证在methodB方法中所有的调用都获得到一个相同的连接。在调用methodB时&#xff0c;没…

工作173:一级控制二级菜单的变化

1第一步 组件封装 利用$emit触发 触发结束 页面进行渲染 <!--封装部门选择的插件 需要的组件 子组件--> <template><el-select :value"value" placeholder"请选择所属部门" change"handleChange"><el-optionv-for&quo…