相关疑难解决方法(0)

自动滚动recyclerview滑块

我是Android开发的新手。我正在尝试创建一个自动滚动recyclerview滑块,该滑块还支持用户事件,例如下一个和上一个按钮以及手动滚动。

像这样: 在此处输入图片说明

我已经实现了recyclerview和按钮事件处理,但是我不知道如何实现自动滚动,它只是从位置0滚动到末尾,以及如果用户手动滑动滑块或单击按钮,如何停止自动滚动。

MainActivity.java

public class MainActivity extends AppCompatActivity {

RecyclerView mRecyclerView;
LinearLayoutManager layoutManager;
HorizontalSliderAdapter recyclerAdapter;
Button btnPrev;
Button btnNext;

Runnable runnable;
Handler handler;

public static final String LOGTAG = "slider";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mRecyclerView = (RecyclerView) findViewById(R.id.horizontal_slider_recyclerview);
    setUpRecyclerView();
    autoScroll();

}

public void setUpRecyclerView() {

    final List<HorizontalSliderModel> RowItems = HorizontalSliderModel.getData();
    layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
    mRecyclerView.setLayoutManager(layoutManager);
    mRecyclerView.setHasFixedSize(true);
    recyclerAdapter = new HorizontalSliderAdapter(this, RowItems);
    mRecyclerView.setAdapter(recyclerAdapter);

    btnPrev = (Button) findViewById(R.id.bPrev);
    btnNext = (Button) findViewById(R.id.bNext);

    btnPrev.setOnClickListener(new View.OnClickListener() { …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

5
推荐指数
1
解决办法
2870
查看次数

在Recycler视图中的Android Horizo​​ntal Auto滚动

我在列表中有两个值,并使用Recycler视图在水平列表视图中显示它.在这里,我需要自动滚动水平列表无限制.我尝试使用以下代码,但没有结果.

Horizo​​ntalScrollView:添加新视图时自动滚动到结束?

回复表示赞赏......

android

3
推荐指数
1
解决办法
6352
查看次数

如何使用偏移回收器视图进行自动平滑滚动?

有这样的问题,我有水平RecyclerView,每个单元格小于屏幕宽度。

所以我在这里找到了解决方案

RecyclerVIew 自动滚动以显示新闻提要等中的所有元素,

如果一个单元格占据屏幕的整个宽度,则所有工作都很好,否则(如果每个单元格占据屏幕宽度的 95%),每次自动滑动都将单元格放在屏幕的初学者(右侧)处,这是合乎逻辑的。所以在一个可见单元格的末尾它是另一个单元格的开始

在此处输入图片说明

它看起来不太好。我需要这个单元格像这样位于屏幕中间。

我需要查看上一个单元格 - 当前 - 下一个

在此处输入图片说明

现在我想解释一些魔法如何使当前平滑滚动(正如我在上面的链接中提到的)

我的这个方法 CustomLinnearLayoutManager

@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position)
{
    LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext())
    {
        @Override
        public PointF computeScrollVectorForPosition(int targetPosition)
        {
            return SmoothLayoutManager.this.computeScrollVectorForPosition(targetPosition);
        }

        @Override
        protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics)
        {
            return MILLISECONDS_PER_INCH / displayMetrics.densityDpi;
        }
    };

    linearSmoothScroller.setTargetPosition(position);
    startSmoothScroll(linearSmoothScroller);
}
Run Code Online (Sandbox Code Playgroud)

但是这种方法可以在没有偏移的情况下工作

我发现了另一种可以提供所需偏移量的方法

scrollToPositionWithOffset(final int position, final int offset)
Run Code Online (Sandbox Code Playgroud)

它看起来正是我所需要的,但是这种方法在没有平滑动画的情况下也能工作。

所以,最终我的问题是:如何将动画逻辑从第一种方法应用到第二种方法(带有偏移量)

随意问

java android android-recyclerview

1
推荐指数
1
解决办法
4775
查看次数

标签 统计

android ×3

android-recyclerview ×2

java ×1