2017-09-01 94 views
0

你好傢伙我有一個水平回收視圖的問題,如果我滾動到右邊,然後點擊任何項目,然後它會自動滾動到左邊的第一項,基本上我必須留下來當前點擊的位置不滾動左起,我從堆棧中使用多個東西,但沒有一個像scrolltopostion一樣工作,創建自定義佈局管理器類!請幫助 下面是我的代碼:水平RecycleView項目點擊滾動到第一項

private void setAdapter() { 
    recyclerView.setHasFixedSize(true); 
    mLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); 
    recyclerView.setLayoutManager(mLayoutManager); 
    mainAdapterClass = new MainAdapterClassw(context, AuctionManager.list); 
    recyclerView.setAdapter(mainAdapterClass); 
} 

下面是適配器類:

public class MainAdapterClassw extends RecyclerView.Adapter<MainAdapterClassw.ViewHolder> { 
    ArrayList<AuctionBean> list; 
    Context context; 
    public MainAdapterClassw(Context context, ArrayList<AuctionBean> list) { 
     super(); 
     this.context = context; 
     this.list = list; 
    } 
    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View v = LayoutInflater.from(viewGroup.getContext()) 
       .inflate(R.layout.customelayout, viewGroup, false); 
     ViewHolder viewHolder = new ViewHolder(v); 

     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder viewHolder, int i) { 

     auctionBean = list.get(i); 
     viewHolder.top_sr_no.setText(auctionBean.getAuction_id()); 
     viewHolder.view2.setVisibility(View.GONE); 
     viewHolder.itemView.setSelected(selectedPos == i); 

     viewHolder.bottom_sr_no.setText(auctionBean.getReserve_price()); 

      text_qantity.setText(qantity1); 
      Picasso.with(context) 
        .load("http://traala.com/Bidding/images/date.png") 
        .placeholder(R.mipmap.ic_launcher) 
        .into(productimage); 

     } 
     viewHolder.setClickListener(new ItemClickListener() { 
      @Override 
      public void onClick(View view, int position, boolean isLongClick) { 
       AuctionBean auctionBean1 = list.get(position); 
       Log.d("LogPosition",position+""); 

       if (countDownTimer != null) { 

        countDownTimer.cancel(); 
       } 

        CSPreferences.putString(context, "auction_id", auctionBean1.getAuction_id()); 
        ModelManager.getInstance().getAuctionManager().AuctionManager(context, Operations.getallAcuntion(context, 
          ActionString.getall_auctions, "101", auctionBean1.getAuction_id())); 


      } 
     }); 

     switch (auctionBean.getAuction_status()) { 
      case "status_active.png": 
       viewHolder.imgThumbnail.setImageResource(R.drawable.status_active); 
       break; 
      case "status_pending.png": 
       viewHolder.imgThumbnail.setImageResource(status_pending); 
       break; 
      case "status_over.png": 
       viewHolder.imgThumbnail.setImageResource(R.drawable.ic_icon_auction_red); 
       break; 


     } 
    } 


    @Override 
    public int getItemCount() { 
     return list.size(); 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { 

     public ImageView imgThumbnail; 
     public TextView top_sr_no; 
     public TextView bottom_sr_no; 
     View view2; 
     private ItemClickListener clickListener; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      imgThumbnail = (ImageView) itemView.findViewById(R.id.imageview); 
      top_sr_no = (TextView) itemView.findViewById(R.id.textsrno); 
      bottom_sr_no = (TextView) itemView.findViewById(R.id.textbottom_srno); 
      view2 = (View) itemView.findViewById(R.id.view1); 
      itemView.setOnClickListener(this); 
      itemView.setOnLongClickListener(this); 

     } 

     public void setClickListener(ItemClickListener itemClickListener) { 
      this.clickListener = itemClickListener; 

     } 

     @Override 
     public void onClick(View view) { 
      clickListener.onClick(view, getAdapterPosition(), false); 
      adapterpostion =getAdapterPosition(); 
      auctionstatus =auctionList.get(getAdapterPosition()); 

     } 

     @Override 
     public boolean onLongClick(View view) { 
      clickListener.onClick(view, getPosition(), true); 
      return true; 
     } 
    } 

} 
} 
+0

在放置'Recyclerview'的xml佈局文件中,添加'android:descendantFocusability =「blocksDescendants」'這個屬性。 – Ninja

+0

在父母佈局的XML? –

+0

是的,如果你的''LineareLayout''裏面的recyclerview然後在LinearLayout中添加屬性 – Ninja

回答

0

請你的父母佈局xml文件

android:descendantFocusability="blocksDescendants"

設置適配器添加該屬性RecyclerView如下:

private void setAdapter() { 
    recyclerView.setHasFixedSize(true); 
    mLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.setNestedScrollingEnabled(false); 
    recyclerView.setHasFixedSize(true); 
    mainAdapterClass = new MainAdapterClassw(context, AuctionManager.list); 
    recyclerView.setAdapter(mainAdapterClass); 
} 
+0

不工作的老闆! –

相關問題