【发布时间】:2016-05-09 10:47:25
【问题描述】:
我正在使用findLastCompletelyVisibleItemPosition() 来确定我的 RecyclerView 中的最后一个可见项目。
这是我如何设置布局的代码 sn-p:
mRecyclerView.setHasFixedSize(true);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getContext());
mRecyclerView.setLayoutManager(mLayoutManager);
布局 XML:
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/message_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:paddingBottom="@dimen/footer_progress_bar"
android:paddingTop="16dp"
android:scrollbars="vertical" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:visibility="gone" />
<ProgressBar
android:id="@+id/footer_progress_bar"
android:layout_width="@dimen/footer_progress_bar"
android:layout_height="@dimen/footer_progress_bar"
android:layout_gravity="center|bottom"
android:visibility="gone" />
</FrameLayout>
</android.support.v4.widget.SwipeRefreshLayout>
在纵向模式下,这可以正常工作并始终返回正确的位置。
但在横向模式下,返回的位置始终为 -1。
我的问题是:
有人知道为什么会这样吗?
如何覆盖它以返回正确的位置?
或者任何人都可以推荐另一种解决方案来获得横向最后一个项目的正确位置?
【问题讨论】:
-
分享你的布局文件
-
@P.Rai 添加在上面
-
请分享每个项目/行的布局文件
-
stackoverflow.com/a/40857380/2077479 请看我的回答,可能是你的问题是小屏幕上的列表项视图太大。
标签: android android-layout android-recyclerview linearlayoutmanager