2016-04-03 64 views
1

我想添加快速滾動功能(如在Android的聯繫人應用程序或在WhatsApp聯繫人)到我的RecyclerView?如何添加一個快速滾動滾動條到Recyclerview沒有3rd-Libraries

我也會使用listview,但我需要Cards在我的應用程序在相同的佈局!

如果實現快速滾動到Recyclerview太困難了,使用ViewStub也是一個選項,或者不是?

我RecyclerViewAdapter:

public class SongRecyclerViewAdapter extends RecyclerView.Adapter<SongRecyclerViewAdapter.Holder> { 
    private Song[] sSongs; 

    public SongRecyclerViewAdapter(Song[] songs) { 
     sSongs = songs; 
    } 

    @Override 
    public Holder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_songview, parent, false); 

     Holder holder = new Holder(view); 

     return holder; 
    } 

    @Override 
    public void onBindViewHolder(Holder holder, int position) { 
     //holder.imvSong.setImageResource(R.drawable.standardartwork); 
     holder.txvSongTitle.setText(sSongs[position].getTitle()); 
     holder.txvSongInfo.setText(sSongs[position].getArtists()); 
    } 

    @Override 
    public int getItemCount() { 
     return sSongs != null ? sSongs.length : 0; 
    } 

    public class Holder extends RecyclerView.ViewHolder { 
     LinearLayout linearLayout; 
     ImageView imvSong; 
     TextView txvSongTitle; 
     TextView txvSongInfo; 

     public Holder(View layout) { 
      super(layout); 

      linearLayout = (LinearLayout) layout; 

      imvSong = (ImageView) layout.findViewById(R.id.imvSong); 
      txvSongTitle = (TextView) layout.findViewById(R.id.adap_txvSongtitle); 
      txvSongInfo = (TextView) layout.findViewById(R.id.txvSongInfo); 
     } 
    } 
} 

謝謝!

回答

0

在你的代碼將是註釋行的問題:

 //holder.imvSong.setImageResource(R.drawable.standardartwork); 

來處理這一點,你有2個解決方案:

1)如果u限制了已知的圖像量小,你可以創建位圖/繪製一次初始化時,那麼你只需要引用那些。

2)創建一個位圖緩存,智能的方式來解碼位圖以及可重用的位圖池和池機制。這不是微不足道的,這是第三方庫爲你做的。我不會建議你自己實施它。