Я пытаюсь изменить позицию внутреннего реселлера в BaseAdapter из фрагмента. Я определил глобальную ссылку ViewHolder для доступа viewholder.recyclerViewMatchCandidateUserProfilePictures
. Но я понял, что моя глобальная ссылка viewHolder задает видоискатель последнего элемента. Я могу нажать кнопку для первого элемента в списке, однако определенное мной действие выполняется с последним элементом просмотра в моем адаптере. Но я хочу получить доступ к текущей ссылке viewHolder. Тогда я могу делать операции на текущем viewHolder. Что мне делать?
активировать показать следующую фотографию из фрагмента:
//...
mMatchScreenFragmentAdapter.showNextPhoto();
//...
А это мой адаптер:
public class MatchScreenFragmentAdapter extends BaseAdapter {
private ArrayList<UserInfo> mOppositeSexUserList;
private Context mContext;
private UserFavoriteArtistsRecyclerViewAdapter mUserFavoriteArtistsRecyclerViewAdapter;
ViewHolder viewHolder;
public MatchScreenFragmentAdapter(ArrayList<UserInfo> oppositeSexUserList, Context context) {
mOppositeSexUserList = oppositeSexUserList;
mContext = context;
}
@Override
public int getCount() {
return mOppositeSexUserList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.match_screen_adapter_item, parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
//...
UserProfileImagesRecyclerViewAdapter userProfileImagesRecyclerViewAdapter = new UserProfileImagesRecyclerViewAdapter(user.getUserProfilePicturePaths(), mContext);
viewHolder.recyclerViewMatchCandidateUserProfilePictures.setPagingEnabled(false);
viewHolder.recyclerViewMatchCandidateUserProfilePictures.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
viewHolder.recyclerViewMatchCandidateUserProfilePictures.setHasFixedSize(true);
viewHolder.recyclerViewMatchCandidateUserProfilePictures.setAdapter(userProfileImagesRecyclerViewAdapter);
return convertView;
}
public void showNextPhoto() {
viewHolder.recyclerViewMatchCandidateUserProfilePictures.smoothScrollToPosition(2);
}
static class ViewHolder {
@BindView(R.id.recyclerViewMatchCandidateUserProfilePictures)
NonTouchableRecyclerView recyclerViewMatchCandidateUserProfilePictures;
private ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}
}