RecyclerView实现水波纹点击效果

 更新时间:2019年01月30日 10:39:53   作者:REIGE  
这篇文章主要为大家详细介绍了RecyclerView实现水波纹点击效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了RecyclerView实现水波纹点击效果的具体代码,供大家参考,具体内容如下

效果图

item.xml

这里就是主要设置background为我们后面写的一个selector

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@drawable/recycler_item_selector"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
 <TextView
  android:id="@+id/textView"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:gravity="center"
  android:textSize="40sp"
  android:text="aaaa"/>
</LinearLayout>

drawable-v21/recycler_item_selector.xml (v21版本以上)

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
  android:color="@color/colorPrimary">
 <item android:drawable="@color/write"/>
</ripple>

drawable/recycler_item_selector.xml (v21版本以下的没有水波纹效果)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@color/colorPrimary" android:state_pressed="true"/>
 <item android:drawable="@color/colorPrimary" android:state_focused="true"/>
 <item android:drawable="@color/write"/>
</selector>

接下来是MyAdapter

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {


 private OnRvItemClick mOnRvItemClick;
 private Context mContext;
 String[] strings;

 public MyAdapter(Context ctx, String[] strings, OnRvItemClick onRvItemClick) {
  mContext = ctx;
  this.mOnRvItemClick = onRvItemClick;
  this.strings = strings;
 }

 @Override
 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  View view = LayoutInflater.from(mContext).inflate(R.layout.item, parent, false);
  return new ViewHolder(view);
 }

 @Override
 public void onBindViewHolder(ViewHolder holder, int position) {
  holder.setData(position);
 }

 @Override
 public int getItemCount() {
  return 20;
 }


 public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  @BindView(R.id.textView)
  TextView textView;

  public ViewHolder(View itemView) {
   super(itemView);
   ButterKnife.bind(this,itemView);
   itemView.setOnClickListener(this);
  }

  public void setData(int position) {

   textView.setText("position" + position);
  }

  @Override
  public void onClick(View view) {
   if (mOnRvItemClick != null)
    mOnRvItemClick.onItemClick(view, getAdapterPosition());
  }

 }


 /**
  * item点击接口
  */
 public interface OnRvItemClick {
  void onItemClick(View v, int position);
 }
}

MainActivity

public class MainActivity extends AppCompatActivity {

 @BindView(R.id.RecyclerView)
 RecyclerView mRecyclerView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  ButterKnife.bind(this);
  MyAdapter myAdapter = new MyAdapter(this, null, new MyAdapter.OnRvItemClick() {
   @Override
   public void onItemClick(View v, int position) {
    Toast.makeText(getApplicationContext(), "click" + position, Toast.LENGTH_SHORT)
      .show();
   }
  });
  mRecyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

  mRecyclerView.setAdapter(myAdapter);
 }
}

github :RecyclerView水波纹效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android webview 遇到android.os.FileUriExposedException错误解决办法

    Android webview 遇到android.os.FileUriExposedException错误解决办法

    这篇文章主要介绍了Android webview 遇到android.os.FileUriExposedException错误解决办法的相关资料,希望通过本文能帮助到大家,让大家遇到这样的问题解决,需要的朋友可以参考下
    2017-10-10
  • Android 对话框 Dialog使用实例讲解

    Android 对话框 Dialog使用实例讲解

    对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对话框, 退出提示.接下来通过本文给大家介绍android dialog对话框知识,感兴趣的朋友一起看看吧
    2016-09-09
  • Android中BroadcastReceiver案例讲解

    Android中BroadcastReceiver案例讲解

    今天小编就为大家分享一篇关于Android中BroadcastReceiver案例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Android 关机弹出选择菜单的深入解析

    Android 关机弹出选择菜单的深入解析

    本篇文章是对Android 关机弹出选择菜单进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Android边框裁切的正确姿势实现示例

    Android边框裁切的正确姿势实现示例

    这篇文章主要为大家介绍了Android边框裁切的正确姿势实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • android开发教程之framework增加字符串资源和图片等resource资源

    android开发教程之framework增加字符串资源和图片等resource资源

    这篇文章主要介绍了android开发中framework增加字符串资源和图片等resource资源方法,需要的朋友可以参考下
    2014-02-02
  • Android 使用<layer-list>实现微信聊天输入框功能

    Android 使用<layer-list>实现微信聊天输入框功能

    <layer-list> 标签可以设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 <item>标签。这篇文章主要介绍了Android 使用<layer-list>实现微信聊天输入框,需要的朋友可以参考下
    2017-05-05
  • Android编程自定义扁平化对话框示例

    Android编程自定义扁平化对话框示例

    这篇文章主要介绍了Android编程自定义扁平化对话框,结合具体实例形式分析了Android自定义扁平化对话框的布局与功能相关实现技巧,需要的朋友可以参考下
    2017-06-06
  • Android项目中使用HTTPS配置的步骤详解

    Android项目中使用HTTPS配置的步骤详解

    这篇文章主要给大家介绍了关于Android项目中使用HTTPS配置步骤的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Compose 的 Navigation组件使用示例详解

    Compose 的 Navigation组件使用示例详解

    这篇文章主要为大家介绍了Compose 的 Navigation组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论