正在使用的图书馆SwipCards
我有一个ArrayList,它像一张纸牌一样循环移动许多纸牌(类似于Tinder的UI),我决定添加一个onclicklistener,以便在单击时更改应用于该卡的样式,但是可以,但是它仅适用于ArrayList中的最后一张卡。
flingContainer.setOnItemClickListener(new
SwipeFlingAdapterView.OnItemClickListener(){
@override
public void onItemClicked(int itemPosition, Object dataObject) {
if (findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
findViewById(R.id.namecard).setVisibility(View.INVISIBLE);
}
else if (findViewById(R.id.namecard).getVisibility() == (View.GONE)){
findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
else if (findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
}
})
是否有一种方法可以使样式效果应用于堆栈中的顶部卡(视图中的卡),而不是应用于Arraylist中的底部卡(最后一个卡)?
我已经尝试过this solution,,但即使我已替换某些方面以匹配我正在使用的库,它似乎也不起作用
答案 0 :(得分:0)
对于使用此库的任何人,如果您想在视图中进行操作,解决方案是getSelectedView()
flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener(){
@override
public void onItemClicked(int itemPosition, Object dataObject) {
View view = flingContainer.getSelcetedView();
if (view.findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
view.findViewById(R.id.namecard).setVisibility(View.INVISIBLE);
}
else if (view.findViewById(R.id.namecard).getVisibility() == (View.GONE)){
view.findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
else if (view.findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
view.findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
arrayAdapter.notifyDataSetChanged();
}
})