2017-04-02 96 views
0

我想在垂直线性布局(RecyclerView)中找到当前可见的项目/项目,以便我可以将Exoplayer附加到最顶端的元素而不是所有项目。甚至在能见度上播放该项目。我无法找到任何想法来执行此操作。当前在RecyclerView中的可见项目

这应该在片段或适配器中处理。

谢谢,我是Android开发新手。

+0

你有几个元素?也许最好使用'RecyclerView'而不是'LinearLayout'?顺便说一句,为什么你在这种情况下有Adapter? – pxsx

+0

我有RecyclerView垂直线性布局。 – user1590595

回答

0

在LinearLayoutManager中,您可以使用一些他们可以提供帮助的方法。

layoutManager.findFirstVisibleItemPosition(); 
layoutManager.findFirstCompletelyVisibleItemPosition(); 
layoutManager.findLastVisibleItemPosition(); 
layoutManager.findLastCompletelyVisibleItemPosition(); 

这些返回位置为整数。您可以使用如下:

LinearLayoutManager layoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager()); 
int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); 

但是你要注意的是,在某些情况下,某些设备findFirstVisibleItemPosition()不是为我工作稳定。例如,它在索尼,LG和三星设备上工作,但是相同的代码,并未在Nexus 5上工作。我不知道为什么它不起作用,但是由于这个错误,我改变了我的方法。

+0

你选择了什么方法? – user1590595

+0

@ user1590595这是关于使用CollapsableToolbarLayout滚动消费行为的另一个复杂功能。我设法解决这个自定义的投掷行为。我不认为这与你的情况有关。它需要太多解释。 –

相关问题