10

मुझे क्षैतिज पुनर्चक्रण दृश्य में स्क्रॉल करने में समस्याएं हैं। उदाहरण के लिए यदि मेरे पास 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 leanback जो भी recycleView फैली के साथ आता है का उपयोग करने के कोशिश कर रहा हूँ में है , लेकिन फिर भी मुझे इसी प्रकार की समस्या का सामना करना पड़ रहा है,

अगर मैं रनटाइम पर रीसाइक्लिंग व्यू में किसी भी आइटम को जोड़ने का प्रयास करता हूं, उदाहरण के लिए फोटो लेने पर, यह भी जोड़ा नहीं जा रहा है, यह अंतरिक्ष आवंटित करता है और यह खाली है? इस मुद्दे को समझना या डीबग करना बहुत मुश्किल है।

+0

के साथ जारी रहना यह आपके एडाप्टर की समस्या हो सकती है। अपना कोड रखने के बिना जवाब देना लगभग असंभव है। – eleven

+0

मैंने कोड अपडेट किया है, क्या मुझे कुछ भी याद आ रहा है – Rakesh

+0

आपकी मदद के लिए धन्यवाद। आईएसयू को आंशिक रूप से आंशिक रूप से आंशिक रूप से हल किया गया है, जो कि वॉली लाइब्रेरी के NetworkImageView के मेरे मामले में बाल दृश्यों के लिए 100 डीपी के रूप में आंशिक रूप से हल किया गया है। रैप सामग्री देने के बजाय या माता-पिता से मेल खाते हैं, पूर्वनिर्धारित चौड़ाई और ऊंचाई मुझे काम करते हैं :), सही समाधान नहीं है, लेकिन अभी भी क्षैतिज ग्रिडव्यू (लीनबैक लाइब्रेरी) – Rakesh

उत्तर

2

कोशिश इस तरह layoutManager उपयोग करने के लिए, मदद मिल सकती है आप

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

मैंने पहले ही इसका उपयोग किया है, लेकिन यह उपयोगी नहीं है – Rakesh

2

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); 
} 
1

में इस

एडाप्टर प्रयास करें

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); 
0

अपने help.Issue के लिए धन्यवाद आंशिक रूप से वॉली library.Instead की NetworkImageView की मेरे मामले में बच्चे के विचारों के लिए 100 डी पी के रूप में प्रत्येक पूर्वनिर्धारित चौड़ाई और ऊंचाई देकर आंशिक रूप से हल किया गया रैप सामग्री देने या माता-पिता से मेल खाने के लिए, पूर्वनिर्धारित चौड़ाई और ऊंचाई ने मुझे काम किया :), सही समाधान नहीं है, लेकिन अभी भी क्षैतिज ग्रिडव्यू (लीनबैक लाइब्रेरी)

संबंधित मुद्दे