RecyclerView實現(xiàn)水波紋點擊效果
本文實例為大家分享了RecyclerView實現(xiàn)水波紋點擊效果的具體代碼,供大家參考,具體內(nèi)容如下
效果圖

item.xml
這里就是主要設(shè)置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水波紋效果
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android webview 遇到android.os.FileUriExposedException錯誤解決辦法
這篇文章主要介紹了Android webview 遇到android.os.FileUriExposedException錯誤解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家遇到這樣的問題解決,需要的朋友可以參考下2017-10-10
android開發(fā)教程之framework增加字符串資源和圖片等resource資源
這篇文章主要介紹了android開發(fā)中framework增加字符串資源和圖片等resource資源方法,需要的朋友可以參考下2014-02-02
Android 使用<layer-list>實現(xiàn)微信聊天輸入框功能
<layer-list> 標簽可以設(shè)置LayerDrawable,一種有層次的Drawable疊加效果,<layer-list> 可以包含多個 <item>標簽。這篇文章主要介紹了Android 使用<layer-list>實現(xiàn)微信聊天輸入框,需要的朋友可以參考下2017-05-05

