Intereting Posts
Конфигурация проблем с mockito с eclipse. Дает ошибку: java.lang.verifyError Вопросы об использовании Android Backup Service с базой данных SQLite Как получить непрерывные данные кадры из Camera2 API для потоковой передачи? Каков правильный способ отключить эмулятор genymotion? Стандартные цвета для Android-материалов Чтение событий клавиатуры в Android WebView Google Instant App – как начать автоматизацию с помощью Appium Каков наилучший способ загрузки файлов из сети программно в Android? Внутренняя система позиционирования на основе гироскопа и акселерометра Сохранить состояние фрагмента с помощью навигационного ящика Поддерживает ли Android TTS язык разметки синтеза речи? Как получить битмап из Uri? Здание с кордовой для android создает неправильный код версии Android-дизайн: долго работающий сервис или AlarmManager? CollapsingToolbarLayout crash на 4.4 устройствах (java.lang.IllegalArgumentException: радиус должен быть> 0)

Что касается правильной прокрутки в режиме горизонтального просмотра ресайклеров

У меня есть проблемы с прокруткой в ​​горизонтальном просмотре ресайклеров. Например, если у меня есть 10 предметов, в первый раз, я могу прокручивать до последнего элемента. Но если я перехожу к первому элементу, а затем снова прокручиваю его до последнего элемента, он не перемещается Последний элемент.

Эта проблема связана с прокруткой, если я переопределяю ее для прокрутки, если это так.

Это мое объявление класса фрагмента

LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false); mRecyclerView = (RecyclerView)v. findViewById(R.id.recycler_view); adapter = new MyRecyclerAdapter(getActivity()); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setAdapter(adapter); 

И в моем адаптере

 public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.CustomViewHolder> { private Context mContext; JobSiteActivity mjobSiteActivity; ImageLoader loader = null; public MyRecyclerAdapter(Activity activity) { this.mContext = activity; mjobSiteActivity = (JobSiteActivity)activity; loader = mjobSiteActivity.getImageLoader(); } @Override public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.image_detail_fragment, null); CustomViewHolder viewHolder = new CustomViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(CustomViewHolder customViewHolder, int i) { //FeedItem feedItem = feedItemList.get(i); //Download image using picasso library /* Picasso.with(mContext).load(feedItem.getThumbnail()) .error(R.drawable.placeholder) .placeholder(R.drawable.placeholder) .into(customViewHolder.imageView);*/ customViewHolder.imageView.setImageUrl(Images.imageThumbUrls[i], loader); customViewHolder.imageView.setOnClickListener(clickListener); customViewHolder.imageView.setTag(customViewHolder); //Setting text view title } @Override public int getItemCount() { //return (null != feedItemList ? feedItemList.size() : 0); return Images.imageThumbUrls.length; } public class CustomViewHolder extends RecyclerView.ViewHolder { protected NetworkImageView imageView; public CustomViewHolder(View view) { super(view); this.imageView = (NetworkImageView) view.findViewById(R.id.imageView); } } View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View view) { CustomViewHolder holder = (CustomViewHolder) view.getTag(); int position = holder.getLayoutPosition(); int position1 = holder.getAdapterPosition(); Toast.makeText(mContext, "layoutPs"+position+"adapPos"+position, Toast.LENGTH_SHORT).show(); } }; 

}

Я пытаюсь использовать горизонтальный вид сетки, который поставляется с поддержкой V17, который также расширяет recycleView, но все же я также сталкиваюсь с подобной проблемой,

Если я попытаюсь добавить какой-либо элемент в просмотр recycler во время выполнения, например, при съемке Photo, он также не добавляется, он выделяет пространство, и он пуст. Очень трудно понять или отладить эту проблему.

Solutions Collecting From Web of "Что касается правильной прокрутки в режиме горизонтального просмотра ресайклеров"

Plz попробуйте это

  LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); RecyclerView recyclerViewr = (RecyclerView) findViewById(R.id.recyclerView); recyclerView.setLayoutManager(layoutManager); 

И в адаптере

  private class ImageCycleAdapter extends RecyclerView.Adapter<ImageCycleAdapter.ImageViewHolder> { private Context context; private List<ImageUrls> ids; private RecyclerViewClickListener listner; private int focusedItem = 0; public ImageCycleAdapter(Context context, List<ImageUrls> urlsList, RecyclerViewClickListener listner) { this.context = context; this.ids = urlsList; this.listner = listner; } @Override public ImageCycleAdapter.ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.image_detail_fragment, null); CustomViewHolder viewHolder = new CustomViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ImageCycleAdapter.ImageViewHolder holder, int position) { customViewHolder.imageView.setImageUrl(Images.imageThumbUrls[i], loader); customViewHolder.imageView.setOnClickListener(clickListener); customViewHolder.imageView.setTag(customViewHolder); } private void tryMoveSelection(RecyclerView.LayoutManager lm, int position) { focusedItem = position; notifyItemChanged(focusedItem); lm.scrollToPosition(focusedItem); notifyDataSetChanged(); } @Override public int getItemCount() { return ids.size(); } public class ImageViewHolder extends RecyclerView.ViewHolder { protected NetworkImageView imageView; public ImageViewHolder(View v) { super(v); this.imageView = (NetworkImageView) view.findViewById(R.id.imageView); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // do your action } }); } } } public interface RecyclerViewClickListener { public void recyclerImageClicked(View v, int position); } 

Попробуйте использовать layoutManager, как это, может помочь вам

 LinearLayoutManager layoutManager=new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.HORIZONTAL,false); 

Попробуй это

адаптер

 public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> { ArrayList<String> m_list = new ArrayList<String>(); public CardAdapter(ArrayList<String> m_list){ this.m_list = m_list; } @Override public int getItemCount() { return m_list.size(); } @Override public void onBindViewHolder(ViewHolder hv, int arg1) { UrlImageViewHelper.setUrlDrawable(hv.img, m_list.get(arg1), R.drawable.ic_launcher, new UrlImageViewCallback() { @Override public void onLoaded(ImageView imageView, Bitmap loadedBitmap, String url, boolean loadedFromCache) { } }); } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int arg1) { View v; v = LayoutInflater.from(viewGroup.getContext()).inflate( R.layout.friend_recycler_item, viewGroup, false); ViewHolder hv = new ViewHolder(v); return hv; } class ViewHolder extends RecyclerView.ViewHolder { ImageView img; public ViewHolder(View arg1) { super(arg1); img = (ImageView) arg1.findViewById(R.id.img); } } } 

В действии

 RecyclerView lstPacks = (RecyclerView) rowView.findViewById(R.id.lstPacks); lstPacks.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false); lstPacks.setLayoutManager(holder.mLayoutManager); CardAdapter adapter1 = new CardAdapter(list); lstPacks.setAdapter(holder.adapter1); 

Спасибо за вашу помощь. Частично частично решили решить, предоставив предопределенную ширину и высоту каждого из них, как 100 dp, для дочерних представлений в моем случае NetworkImageView библиотеки Volley. Вместо предоставления содержимого обертки или соответствия родительскому, давая предопределенную ширину и высоту меня работали :), Неправильное решение, но проблема все еще сохраняется с horizontalGridView (библиотека LeanBack)