В моем коде используется recyclerview и реализуется onClick для различных элементов в каждом элементе (виде карты) списка. Одним из этих элементов является кнопка совместного доступа. Представленное в слушателе onClick представление передается через прослушиватель на фрагмент.RecyclerView - другой вид, возвращаемый в onClick
@Override
public void onClick(View v) {
if(mListener != null) {
if(v instanceof ImageButton && v.getTag().equals("share")) {
mListener.onItemClick(v, TYPE_SHARE, getAdapterPosition());
}
}
}
В реализации слушателя во фрагменте, вид корневой (вид карты) пройденного зрения получается
@Override
public void onItemClick(View view, int type, int position) {
if(type == TYPE_SHARE) {
View r = view.getRootView()
View u = r.findViewById(R.id.card_view);//this is the list item
File file = LayoutScreenshot.getScreenshot(u);
}
}
, а затем снимок экрана этой точки зрения берется с помощью методов холст.
Хотя все это работает, проблема в том, что представление, возвращенное в onClick, не обязательно совпадает с тем, на которое пользователь нажал.
изображение для представления и мои взгляды немного больше занимать большую часть экрана. Если пользователь нажимает кнопку совместного доступа в пункте 2, например, возвращенное представление относится к одному из пунктов 1, 2 или 3 в зависимости от того, в каком направлении находится пользовательская прокрутка, и количество просматриваемого в настоящее время вида.
Я ошибаюсь, передавая «вид» фрагменту, а затем работаю над ним? Может ли кто-нибудь указать некоторые указатели?