我的屏幕上有一些视图,其中包含3个ImageView
。
我有另一个包含30个图标的视图(RecyclerView)。
我想要当我单击RV中的某个图标时,将其与第三个ImageView
的3 ImageView
添加到容器中。
如果我再次从RV单击其他图标,并且先前单击的图标已使用ImageView
处的index 0
,则该图标将移至索引1,新的图标将添加至索引0
我现在有一个代码:
现在,它总是将图标添加到index 0
中。
XML”:
<LinearLayout
android:layout_width="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:layout_height="match_parent">
<ImageView
android:id="@+id/historyContainer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageView
android:id="@+id/historyContainer2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageView
android:id="@+id/historyContainer3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
包含图像的片段:
private ArrayList<ImageView> historyItemsPH = new ArrayList<>();
historyItemsPH.add(mHistoryContainer1);
historyItemsPH.add(mHistoryContainer2);
historyItemsPH.add(mHistoryContainer3);
mLightsAdapter.setOnLightImageTouchListener(new LightsAdapter.OnLightImageTouchListener() {
@Override
public void onLightImageTouch(final int position, MotionEvent event, LightsAdapter.LightsViewHolder holder) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
MainActivity mainActivity = (MainActivity) getActivity();
mainActivity.removeSortFragment();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
mEmptyHistoryTXT.setVisibility(View.GONE);
Glide.with(getContext())
.load(mLightsArray.get(position).getLampImageUrl())
.override(150)
.into(historyItemsPH.get(0));
}
}
});
答案 0 :(得分:0)
这将每次添加到下一个,就像您想要添加更多逻辑一样
int i = 0;
private ArrayList<ImageView> historyItemsPH = new ArrayList<>();
historyItemsPH.add(mHistoryContainer1);
historyItemsPH.add(mHistoryContainer2);
historyItemsPH.add(mHistoryContainer3);
mLightsAdapter.setOnLightImageTouchListener(new LightsAdapter.OnLightImageTouchListener() {
@Override
public void onLightImageTouch(final int position, MotionEvent event, LightsAdapter.LightsViewHolder holder) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
MainActivity mainActivity = (MainActivity) getActivity();
mainActivity.removeSortFragment();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
mEmptyHistoryTXT.setVisibility(View.GONE);
Glide.with(getContext())
.load(mLightsArray.get(position).getLampImageUrl())
.override(150)
.into(historyItemsPH.get(i));
i++;
if (i==3){
i = 0;
}
}
}
});