Steuern Seitensprung speed für recycler anzeigen

Ich habe eine RecyclerView in dem ich ein Bild haben ,ein paar TextViews und 2 ImageButtons.
Ich habe 7-8 solche Zeilen anzuzeigen, die in meinem Activity.
Das scrollen ist sehr glatt in android 4.4.4 und unten Versionen, aber es gibt einige Rucken Effekt in lollipop.
Ich denke, dass die Steuerung der Seitensprung-Geschwindigkeit für die RecyclerView wird den trick tun.
Ich habe gesucht, aber nichts gefunden.Stattdessen fand ich wie Sie die Ansicht an eine bestimmte position für den Seitensprung.

Aber ich möchte festlegen, das Seitensprung speed. Können Reibung verwendet werden. Und wie Sie die Reibung.

menuRecyclerView = (RecyclerView) findViewById(R.id.menuList);
menuRecyclerView.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(context);
menuRecyclerView.setLayoutManager(llm);     
Scroller sc = new Scroller(context);
sc.setFriction(ViewConfiguration.getScrollFriction() * 10);

Dies ist mein adapter zu setzen rcycler-view-layout.

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.bumptech.glide.Glide;

import news.circle.circle.R;

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.CustomViewHolder> {
    public RecyclerViewAdapter(Context context, List<MenuDescription> listOrder, DatabaseHandlerCart db
            , List<MenuDescription> vegList, List<MenuDescription> nonVegList, String menuTextData) {
        this.listOrder = listOrder;
        this.inflater = LayoutInflater.from(context);
        this.context = context;
        imageLoader = new ImageLoader(context);
        this.db = db;
        this.vegList = vegList;
        this.nonVegList = nonVegList;
        this.completeList = listOrder;
        this.menuTextData = menuTextData;
    }

    @Override
    public RecyclerViewAdapter.CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == TYPE_ITEM) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view, parent, false);
            return new CustomViewHolder(view, viewType);
        } else if (viewType == TYPE_HEADER) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.header, parent, false);
            return new CustomViewHolder(view, viewType);
        }
        return null;
    }

    @Override
    public void onBindViewHolder(final RecyclerViewAdapter.CustomViewHolder holder, int position) {
        if (holder.Holderid == 1) {
            final MenuDescription menu = listOrder.get(position - 1);
            holder.title.setText(menu.getName() + "");
            holder.quant.setText(menu.getQuantity() + "");
            holder.description.setText(menu.getDescription());
            holder.title.setTypeface(Fonts.getFont(context, Constants.AVENIR_REGULAR));
            holder.description.setTypeface(Fonts.getFont(context, Constants.AVENIR_REGULAR));
            Glide.with(context).load(menu.getFlag_path()).placeholder(R.drawable.ic_order_now).fitCenter().into(holder.image);
            holder.inc.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //TODO Auto-generated method stub
                    if (Constants.internet) {
                        menu.decrQuantity();
                        if (menu.getQuantity() == 0) {
                            menu.setDecr_button_visibility(0);
                            try {
                                db.DeleteCartItem(menu.getItem_id());
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        } else {
                            try {
                                db.updateQuantity(menu.getQuantity(), menu.getItem_id());
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                        holder.quant.setText(menu.getQuantity() + "");
                        notifyDataSetChanged();
                    } else {
                        Toast.makeText(context, "Please check your internet connection", Toast.LENGTH_SHORT).
                    }
                    show();
                }
            });
            holder.decr.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (Constants.internet) {
                        try {
                            if (!db.CheckIsItemAlreadyInDBorNot(menu.getItem_id(), "cart")) {
                                menu.incrQuantity();
                                db.addDataToCart(menu);
                                //cart_items.add(menu);

                                holder.quant.setText(menu.getQuantity() + "");
                            } else {
                                menu.incrQuantity();
                                db.updateQuantity(menu.getQuantity(), menu.getItem_id());
                                holder.quant.setText(menu.getQuantity() + "");
                            }

                        } catch (SQLException | IllegalStateException e) {
                            e.printStackTrace();
                        }


                        if (menu.getDecr_button_visibility() == 1) {
                            holder.decr.setVisibility(View.VISIBLE);
                            holder.quant.setVisibility(View.VISIBLE);
                            if (total == 1)
                                RecyclerViewMainActivity.bottomBarUp();

                            notifyDataSetChanged();
                        } else
                            Toast.makeText(context, "Please check your internet connection", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }

    @Override
    public int getItemCount() {
        return (null != listOrder ? listOrder.size() + 1 : 0);
    }

    @Override
    public int getItemViewType(int position) {
        if (isPositionHeader(position))
            return TYPE_HEADER;
        return TYPE_ITEM;
    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    private boolean isPositionHeader(int position) {
        return position == 0;
    }
}

InformationsquelleAutor Abhishek Lodha | 2015-08-20

Schreibe einen Kommentar