首页 > 系统 > Android > 正文

RecyclerView实现水波纹点击效果

2019-10-21 21:26:01
字体:
来源:转载
供稿:网友

本文实例为大家分享了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水波纹效果

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


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表