怎么在Android中实现抖音上下滑动布局
今天就跟大家聊聊有关怎么在Android中实现抖音上下滑动布局,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为嘉陵企业提供专业的成都网站建设、网站制作,嘉陵网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
使用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中实现抖音上下滑动布局有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
网页标题:怎么在Android中实现抖音上下滑动布局
URL分享:http://www.scyingshan.cn/article/ghcgei.html


咨询
建站咨询
