2017-09-01 10 views
0

こんにちは、私はHorizo​​ntal Recycle Viewに問題があります。右にスクロールしてからアイテムをクリックすると、自動的に左の最初のアイテムにスクロールします。現在のクリックされた位置は、左から開始するためにスクロールしない、私はスタックから複数のものを使用しますが、それらのどれもカスタムレイアウトマネージャクラスを作成するscrolltopostionのように働いた!以下は私のコードである 助けてください:Horizo​​ntal RecycleViewアイテムをクリックして最初のアイテムにスクロール

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"

セットアダプタでのあなたの親のレイアウトにこのプロパティを追加してください:以下

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

は、アダプタクラスです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

働いていないボス!!!! –

関連する問題