recyclerview

关于Support包的版本问题

亡梦爱人 提交于 2019-11-28 02:38:22
今天跑了下某项目,发现报错: Error:Execution failed for task ':app:transformClassesWithJarMergingForDevDebug' . > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/content/SharedPreferencesCompat$1. class 大家看了就知道,这基本上就是support包版本兼容问题,可是之前打开过没有问题啊,怎么今天就跑不起来了? 怀疑是Dependency中存在标示为获取最新版本的库(依赖包没有标记具体的版本号,而是使用了加号“+”),因为发布了新的包,和项目中其他的包发生了版本冲突所导致的。 所以直接就来看项目中的build.gradle文件,发现以下代码: compileSdkVersion 23 ... dependencies { compile fileTree(dir: ' libs ' , include: [ ' *.jar ' ]) compile ' com.android.support:design:23.1.0 ' compile ' com.android

RecyclerView

我们两清 提交于 2019-11-27 18:54:02
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/removeButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="9dp" android:layout_weight="1" android:text="删除" app:layout_constraintBottom_toTopOf="@+id/recycleview" app:layout_constraintEnd_toEndOf=

设置适配器来设置RecyclerView的表现形式

拟墨画扇 提交于 2019-11-27 18:53:36
public class RecycleViewActivity extends Activity { @BindView(R.id.recycleview) RecyclerView recycleview; List<People> DataList; @BindView(R.id.removeButton) Button removeButton; @BindView(R.id.addButton) Button addButton; //定义适配器 private MyAdapter adapter; public void onCreate(Bundle bunle) { super.onCreate( bunle ); setContentView( R.layout.recycleviewlayout ); ButterKnife.bind( this ); //初始化子项数组数据 DataList = new ArrayList<People>(); initData(); //设置适配器,同时传入数据 adapter = new MyAdapter( this, DataList ); recycleview.setAdapter( adapter ); //创建LinearLayoutManager 对象 这里使用 LinearLayoutManager

RecyclerView 瀑布流布局

懵懂的女人 提交于 2019-11-27 10:33:37
最后一个布局样式是瀑布流的布局,其实和网格布局几乎一样的,网格布局是规规矩矩的,而瀑布流就是有长有短的那种,有错位和落差感,有时候太规矩的不好看,有一点错位显得更加美观。 ? ? 瀑布流的?RecyclerView Item 布局文件要注意了,不能写固定的一个高度,否则就没有效果了。比如,我们得这样改: <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" app:cardCornerRadius="8dp" app:cardElevation="4dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding=

RecycleView实现item中多个点击监听事件

你。 提交于 2019-11-27 05:11:36
RecycleView确实是一个好东东。它的使用大大提高了程序猿的开发效率,下面我为大家分享它的其中一个功能。如下 1,在adapter类中,需要创建两个点击事件和个监听事件。 public class ListenAdapter extends RecyclerView.Adapter<ListenAdapter.MyViewHolder> { private Context context; private List mlist; private OnItemClick onItemClick; public ListenAdapter( Context context, List<String> mlist) { this.context = context; this.mlist = mlist; } //定义设置点击事件监听的方法 public void setOnitemClickLintener(OnItemClick onItemClick) { this.onItemClick = onItemClick; } //定义一个点击事件的接口 public interface OnItemClick { void onAllItemClick(int position); void onItemClick(ImageView ivIcon2); } @NonNull

RecyclerView 介绍 01

主宰稳场 提交于 2019-11-27 03:44:49
RecyclerView是Android support v7里面是一个自定义控件。用来显示大量数据集合。类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更好。 以前我们在实现ListView和GridView的时候,都会定义一个ViewHolder用于优化UI性能 【详见】 ,RecycleView的实现,已经是自带ViewHolder的实现。请看示例。 实现Adapter,定义每个Item的布局UI和数据。 public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.ViewHolder> { private List<String> mDatas = new ArrayList<>(0); public MyRecyclerAdapter(List<String> datas) { if (datas != null ) { mDatas.addAll(datas); } } public static final class ViewHolder extends RecyclerView.ViewHolder { private final TextView textView; private final Button button;

RecyclerView瀑布流优化方案探讨

旧街凉风 提交于 2019-11-27 03:29:28
目录介绍 01.规则瀑布流实现 02.不规则瀑布流实现 2.1 实现方式 2.2 遇到问题 03.瀑布流上拉加载 04.给瀑布流设置分割线 05.自定义Manager崩溃 06.如何避免刷新抖动 07.为何有时出现跳动 08.瀑布流图片优化 09.onBindViewHolder优化 10.瀑布流item点击事件优化 11.Glide加载优化 12.建议指定图片的宽高 欢迎同行探讨瀑布流极致优化方案 如果同行看到这篇文章,有好的瀑布流优化方案,欢迎给出建议,或者给链接也可以。 需求: 瀑布流大概有10来中不同type的item视图,然后视图是根据动态设置宽高,服务器会返回比例 瀑布流中item需要切割圆角 目前使用glide加载图片 产品说让参考抖音快手类的app,让瀑布流滑动效果特别流畅……但目前遇到问题是滑动十几页没什么问题,但是滑动三四十页的时候会出现卡顿。欢迎同行给出建议! 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢! 链接地址: https://github

安卓多人聊天室客户端

大兔子大兔子 提交于 2019-11-27 02:37:43
安卓多人聊天室客户端 主活动代码 package com.example.chatroom_client; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.io.OutputStream; import java.net.Socket; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private OutputStream outputStream = null; private Socket socket = null; private String ip = "192.168.1.150"; private Button btn_cnt; private EditText et

Android开发databinding和RecyclerView.ViewHolder的完美结合

夙愿已清 提交于 2019-11-27 02:33:05
通用ViewHolder代码如下,就一个ViewHolder。。。从此不在是每个RecyclerView的Adapter编写一个ViewHolder了 class ViewHolder<T : ViewDataBinding>(itemView: View) : RecyclerView.ViewHolder(itemView) { val binding = DataBindingUtil.bind<T>(itemView)!!}gradle文件开启databinding android { dataBinding{ enabled true }}布局文件根元素以<layout></layout>开头 <?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> </LinearLayout></layout>adapter里的使用  控件的引用holder

RecylerView为item添加点击事件

我是研究僧i 提交于 2019-11-27 01:50:22
RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件。 1 原理: 为RecyclerView的每个子item设置setOnClickListener,然后在onClick中再调用一次对外封装的接口,将这个事件传递给外面的调用者。而“为RecyclerView的每个子item设置setOnClickListener”在Adapter中设置。 2步骤: adapter中 自定义一个继承自RecyclerView.Adapter的MyAdapter。 1.在MyAdapter中定义如下接口,模拟ListView的OnItemClickListener: 2 声明一个这个接口的变量 3 在onCreateViewHolder()中为每个item添加点击事件 4 将点击事件转移给外面的调用者: 注意上面调用接口的onItemClick()中的v.getTag()方法,这需要在onBindViewHolder()方法中设置和item的position 5 最后暴露给外面的调用者,定义一个设置Listener的方法(): 以上所有步骤都发生在自定义的adapter中,典型的观察者模式,有点绕的地方在于,这里涉及到两个观察者模式的使用