如题,我为RecycleView的item重写了点击事件,在适配器里写了焦点事件,只实现其中一个都没问题,但同时使用就只有点击事件触发了,是因为onfocus和onclick冲突吗?我要怎么写可以同时触发焦点事件和点击事件呢?求大神赐教!
代码如下:
//焦点事件
holder.itemimages.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
if(Build.VERSION.SDK_INT>=21) {
ViewCompat.animate(v).scaleX(1.25f).scaleY(1.25f).translationZ(1).start();
} }else {
ViewCompat.animate(v).scaleX(0.8f).scaleY(0.8f).translationZ(0).start();
}
}
});
recycleViewAdapter.setItemClickListener(new RecycleViewAdapter.OnRecycleViewClickListener() {
@Override
public void onItemClickListener(View view) {
int position = recyclerView.getChildAdapterPosition(view);
messagetext.setText("位置 + "+position);
switch (position){
case 0:
Toast.makeText(context, "第一个!",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(context, "第二个!",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(context, "第三个!",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(context, "第四个!",Toast.LENGTH_SHORT).show();
break;
case 4:
Intent intent = new Intent(MainActivity.this,MenuActivity.class);
startActivity(intent);
break;
default:
break;
}
}
});
//RecycleView点击接口
public interface OnRecycleViewClickListener {
void onItemClickListener(View view);
}
private OnRecycleViewClickListener listener;
public void setItemClickListener(OnRecycleViewClickListener itemClickListener) {
listener = itemClickListener;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
inflater = LayoutInflater.from(context).inflate(R.layout.item_main,parent,false);
MyViewHolder myViewHolder = new MyViewHolder(inflater);
//接口回调
if(listener != null){
inflater.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClickListener(v);
}
});
}
return myViewHolder;
}