91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用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

海南省| 尉犁县| 涿鹿县| 乡宁县| 个旧市| 富川| 留坝县| 抚宁县| 东港市| 清苑县| 庆城县| 临澧县| 霍林郭勒市| 城市| 石林| 贵南县| 子长县| 东阳市| 正蓝旗| 轮台县| 湘潭市| 车险| 榆树市| 鄯善县| 盐山县| 黄梅县| 库尔勒市| 晋城| 江源县| 陈巴尔虎旗| 丹棱县| 山阴县| 新绛县| 辽宁省| 和林格尔县| 云安县| 德庆县| 嘉鱼县| 桂平市| 衡阳市| 隆化县|