中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Android仿抖音上下滑動布局

發布時間:2021-09-28 14:19:01 來源:億速云 閱讀:194 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何使用Android仿抖音上下滑動布局,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體內容如下

使用RecyclerView+PagerSnapHelper實現

public class DouYinLayoutManager extends LinearLayoutManager implements RecyclerView.OnChildAttachStateChangeListener{  //判斷是否上滑還是下滑  private int mDrift;  private OnViewPagerListener onViewPagerListener;  //吸頂,吸底  private PagerSnapHelper pagerSnapHelper;  public OnViewPagerListener getOnViewPagerListener() {    return onViewPagerListener;  }  public void setOnViewPagerListener(OnViewPagerListener onViewPagerListener) {    this.onViewPagerListener = onViewPagerListener;  }  public DouYinLayoutManager(Context context) {    super(context);  }  public DouYinLayoutManager(Context context, int orientation, boolean reverseLayout) {    super(context, orientation, reverseLayout);    pagerSnapHelper = new PagerSnapHelper();  }  /**   * 當manager完全添加到recycleview中是會被調用   * @param view   */  @Override  public void onAttachedToWindow(RecyclerView view) {    view.addOnChildAttachStateChangeListener(this);    pagerSnapHelper.attachToRecyclerView(view);    super.onAttachedToWindow(view);  }  @Override  public boolean canScrollVertically() {    return super.canScrollVertically();  }  @Override  public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) {    mDrift = dy;    return super.scrollVerticallyBy(dy, recycler, state);  }  @Override  public void onChildViewAttachedToWindow(@NonNull View view) {    if (mDrift > 0){      //向上滑      if (onViewPagerListener != null && Math.abs(mDrift) == view.getHeight()){        onViewPagerListener.onPageSelected(false,view);      }    }else {      //向下滑      if (onViewPagerListener != null && Math.abs(mDrift) == view.getHeight()){        onViewPagerListener.onPageSelected(true,view);      }    }  }  @Override  public void onChildViewDetachedFromWindow(@NonNull View view) {    if (mDrift >= 0){      //向上滑      if (onViewPagerListener != null){        onViewPagerListener.onPageRelease(true,view);      }    }else {      //向下滑      if (onViewPagerListener != null){        onViewPagerListener.onPageRelease(false,view);      }    }  }  @Override  public void onScrollStateChanged(int state) {    switch (state){      case RecyclerView.SCROLL_STATE_IDLE:        //當前顯示的item        View snapView = pagerSnapHelper.findSnapView(this);        if (onViewPagerListener != null){          onViewPagerListener.onPageSelected(false,snapView);        }        break;    }    super.onScrollStateChanged(state);  }}

recyclerView.setLayoutManager()即可

recyclerView = findViewById(R.id.recyclerView_dy);    douYinLayoutManager = new DouYinLayoutManager(this, OrientationHelper.VERTICAL,false);    recyclerView.setLayoutManager(douYinLayoutManager);    recyclerView.setAdapter(new MyAdapter());    douYinLayoutManager.setOnViewPagerListener(new OnViewPagerListener() {      @Override      public void onPageRelease(boolean isNest, View position) {        releaseVideo(position);      }      @Override      public void onPageSelected(boolean isButten, View position) {        playVideo(position);      }    });  }

關于“如何使用Android仿抖音上下滑動布局”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇仁县| 阜阳市| 美姑县| 浮山县| 若羌县| 吴旗县| 砀山县| 府谷县| 井冈山市| 高青县| 左云县| 龙州县| 磴口县| 贡嘎县| 清苑县| 抚州市| 宣威市| 晋宁县| 西盟| 香河县| 茌平县| 平塘县| 孙吴县| 桓台县| 溧阳市| 桦川县| 阳曲县| 琼中| 连平县| 昆山市| 广南县| 永德县| 乌兰察布市| 子洲县| 永丰县| 清水县| 余干县| 桂林市| 福建省| 和静县| 山西省|