这就是我要的:
如上图所示,我想绘制一条中心线RecycleView
,然后在滚动时(以及向左或向右移动)获取中心项目.
这是我尝试绘制水平线RecycleView
:
HorizontalAdapter adapter = new HorizontalAdapter(data);
LinearLayoutManager layoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recycleView.setLayoutManager(layoutManager);
recycleView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
有没有办法知道哪个项目被移动到中心RecycleView
?如何RecycleView
向左或向右滚动一个位置?
更新:我试图使用滚动侦听器来获得中间位置,但它不能作为方面.
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstPos = layoutManager.findFirstVisibleItemPosition();
int lastPos = layoutManager.findLastVisibleItemPosition();
int middle = Math.abs(lastPos - firstPos) / 2 + firstPos;
int selectedPos = -1;
for (int i = 0; i < adapter.getItemCount(); i++) {
if (i == middle) {
adapter.getItem(i).setSelected(true);
selectedPos …
Run Code Online (Sandbox Code Playgroud) 我有一个ListView,它包含更多元素,然后我可以一次显示.现在我想让所有元素的索引完全可见( - >除了那些只是部分可见的元素).这时我使用getFirstVisiblePosition()
及getLastVisiblePosition()
成for-loop
迭代他们,但我想这些方法是不准确的.
有没有更好的解决方案?