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;
}
}
}
}
在放置'Recyclerview'的xml佈局文件中,添加'android:descendantFocusability =「blocksDescendants」'這個屬性。 – Ninja
在父母佈局的XML? –
是的,如果你的''LineareLayout''裏面的recyclerview然後在LinearLayout中添加屬性 – Ninja