1. 程式人生 > >RecyclerView 多條目載入 和點選事件

RecyclerView 多條目載入 和點選事件

compile 'com.android.support:recyclerview-v7:25.1.0'
////////////////////////////////////////////////////////////
//如果巢狀 ScrollowView  需要加上他
//recyclerView.setNestedScrollingEnabled(false);

//設定一個線性佈局掛曆起佈局管理器 //HORIZONTAL設定水平方向 垂直方向 false true true反轉 倒著顯示 false順序顯示
 recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

//設定一個網格管理器

//Vertical代表顯示多少列 //Horizontal代表顯示多少行

recyclerView.setLayoutManager(newGridLayoutManager(this,1,GridLayoutManager.HORIZONTAL,false));

//設定分割線recyclerView.addItemDecoration(newDividerItemDecoration(this,DividerItemDecoration.VERTICAL));

//設定介面卡MyAdapter adapter = new MyAdapter(this,recylelist); recyclerView.setAdapter(adapter);

adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
    @Override
public void setOnItemClick(View view, int position) {
        Log.d("ggg","點選");
    }
    @Override
public void setOnItemLongClick(View view, int position) {
        Log.d("ggg","長按");
    }
});

/////////////////////////////////////////////////////


此多條目 第一種是的一條 第二種是剩下所有條

                                                   //此處可以改成自己的介面卡名字
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {


    private Context context;
    private List<Bean> list;
    private int Viewk_0=0;
    private int Viewk_1=1;
    private int Viewk_2=2;
    private int Viewk_3=3;
    private View view;
    private List<String> lo;


    public MyAdapter(Context context,List<Bean> list){
        this.context = context;
        this.list=list;
    }

    @Override
public int getItemViewType(int position) {
        if(position*1==0){
            return Viewk_0;
        }else{
            return Viewk_1;
        }
    }

    /** * * @param parent * @param viewType * @return */
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      

      if(viewType==Viewk_0){
           view = LayoutInflater.from(context).inflate(R.layout.itembanner,parent,false);
            ViewHolderA viewHolderA = new ViewHolderA(view);
            return viewHolderA;
       }else {
           view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
            ViewHolderB viewHolderB = new ViewHolderB(view);
            return viewHolderB;
       }

    }
    /*   生命自己的一個事件回撥介面*/
  
//如果要將這個介面移到外面去  那麼久別用這個介面了  直接在
//onBindViewHolder中寫點選邏輯

public interface OnItemClickListener{

void setOnItemClick(View view,int position);

void setOnItemLongClick(View view,int position);

}

private OnItemClickListener onItemClickListener;

public void setOnItemClickListener(OnItemClickListener onItemClickListener){

this.onItemClickListener = onItemClickListener;

}

@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {

if(holder instanceof ViewHolderA){

}else if(holder instanceof ViewHolderB){

}

if(null != onItemClickListener)

{ /*回撥點選事件*/holder.itemView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

onItemClickListener.setOnItemClick(v,position);

}

});

holder.itemView.setOnLongClickListener(new View.OnLongClickListener(){

@Override

public boolean onLongClick(View v) {

onItemClickListener.setOnItemLongClick(v,position); return true; } }); } }

@Override public int getItemCount() {

return 4; }

class ViewHolderA extends RecyclerView.ViewHolder{

Banner banner;

public ViewHolderA(View itemView) {

super(itemView);

banner=itemView.findViewById(R.id.banner); } }

class ViewHolderB extends RecyclerView.ViewHolder{

TextView text;

TextView text2;

SimpleDraweeView simple;

public ViewHolderB(View itemView) {

super(itemView);

text = itemView.findViewById(R.id.text1);

text2 = itemView.findViewById(R.id.text2);

simple = itemView.findViewById(R.id.simple); }

}}

相關推薦

RecyclerView 條目載入 事件

compile 'com.android.support:recyclerview-v7:25.1.0' //////////////////////////////////////////////////////////////如果巢狀 ScrollowView 需要加上

RecyclerView 條目載入條目事件

package com.example.day02.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.w

Android中Recyclerview使用7----條目中按鈕事件,在activity中呼叫(介面回撥)

0引入Recyclerview的支援庫    compile 'com.android.support:recyclerview-v7:23.4.0' 1效果圖: 2程式碼: 2.1MainActivity中: <span style="font-size:18p

recyclerView的介面回撥事件多級列表展示

//activity中的方法 recyclerView = (RecyclerView) findViewById(R.id.rv3); list = new ArrayList<

Android-UI佈局---RecyclerView學習(一)在介面卡中自定義長按事件

該系列文章  如果想全方面學習,建議參考這個大牛的文章,寫的真可以。 地址:http://blog.csdn.net/lmj623565791/article/details/45059587 因為RecyclerView沒有點選、長按事件,需要自己寫 實現的方式比較多,

ButterKnife (奶油刀) 找控制元件id事件的註解 簡單使用

首先 在app裡的build 最上面--------------------- apply plugin: ‘com.jakewharton.butterknife’ ----------------在app裡的build 加入依賴---------------------------

安卓實現任意控制元件view可拖拽,並監聽拖拽事件,可自動拉回螢幕邊緣

因為專案中有需要實現控制元件可任意拖拽的需求,所以簡單寫了個自定義OnTouchListener,以作拋磚引玉,歡迎大家提議反饋。 完整實現類如下,程式碼中有詳細註釋: 使用者可以決定是否開啟自動拖拽邊緣功能,可以監聽控制元件的拖拽和點選事件 public cl

RecyclerView的超強輔助Graywater——事件

關於Graywater的系列文章 上一篇寫了Graywater的基礎使用,但是沒講點選事件,這一篇文章就把點選事件給補充上。還是使用的基礎實操篇中的GraywaterPrimaryDemo繼續寫。 先展示點選效果圖: 在RecyclerView中如果需要點選

vue中的長按事件事件衝突

ps:我是個新手,最近一直在做移動端的專案,先說下需求,點選圖片預覽,長按刪除,之前在圖片上幫定了點選事件和長按事件,但是會有衝突,由於智商不夠,百度半天才解決的,最後直接把點選事件給去了,直接用定時器械的,記錄下,下次直接用就好了   1,觸屏事件 touchstart: //手指放到

android ViewPager實現App主介面Tab選單頁面切換事件

Tabhost實現頁面滑動切換比較麻煩,這裡介紹一下viewPage 控制元件。 實現了三屏滑動帶標題點選和tab頁面內按鈕的的點選事件實現; viewPage  的優點是可以滑動切換缺點是MainA

RecyclerView打造萬能介面卡,事件,5.0水波紋效果

一.前言 最近使用到RecyclerView,RecyclerView使用詳解戳這裡,由於使用過張鴻洋大神的ListView萬能Adapter,感覺RecyclerView的Adapter編寫還是太麻煩了,而且沒有點選事件,ok,參考ListView的萬能Ad

RecyclerView條目載入(網路請求資料)

RecyclerView多條目載入和ListView的多條目載入用法是一樣的,程式碼如下: 1.匯入RecyclerView或XRecyclerView的依賴包(自己按照需求匯入依賴包,下面RecyclerView可以替換成XRecyclerView)XRecyclerVi

android Fragment實現APP主介面Tab頁面切換事件

Fragment 頁面切換不能滑動 所以對於listview 可以新增的左右滑動事件 ,不會有衝突例如(QQ的好友列表的刪除) Fragment 和viewpager 的區別 Viewpager 的事件都需要寫在 MainActivity 使

RecyclerView為每個item新增事件

最終目的模擬ListView的setOnItemClickListener()方法,呼叫者只須呼叫類似於setOnItemClickListener的東西就能獲得被點選item的相關資料。原理為RecyclerView的每個子item設定setOnClickListene

RecyclerView 實現瀑布流及事件,含回撥的介面

RecyclerView 實現瀑布流及點選事件 public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { private List

Android用GridView畫帶背景色事件的簡單表格

一:效果圖 六步即可完成GridView不同背景色,並且每個單元格可點選 GridView佈局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="h

recyclerview條目載入

adapter介面卡 import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.V

為canvas繪製的個圖形設定事件

一、給Canvas元素繫結事件基礎知識 由於事件只能達到Canvas元素這一層,所以,如果想進一步深入,識別點擊發生在Canvas內部的哪一個圖形上,就需要增加程式碼來進行處理。 基本思路是:給Canvas元素繫結事件,當事件發生時,檢查事件物件的位置,然後檢查哪些圖形覆

Android 中SpannableStringBuilder控制區域性文字顏色事件

直接上程式碼 package com.lhl.qsmm.maskguidetest; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.s

textview設定多種不同的字型顏色事件

最近專案需要用到textview為特定字元設定不同的顏色,如果用不同的控制元件拼起來的話一行也許沒有問題,但是如果換行的話效果就不理想了就像qq空間回覆品論的效果,暱稱和內容文字顏色不一樣,點選事件也不一樣。 目前我找到兩張方法,效果一樣。想用哪種看個人喜好