我正在尝试将回收器视图滚动到底部,但问题是如果我的行项目高度大于滚动停止在项目顶部的屏幕高度。是否可以手动滚动到回收站视图的最底部?
recyclerView.scrollToPosition(adapter.getItemCount()-1); // does not work
答案 0 :(得分:0)
此解决方案可行,
添加 NestedScrollView 作为父级,
即,在您的Xml中
<android.support.v4.widget.NestedScrollView
android:id="@+id/nsView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</android.support.v4.widget.SwipeRefreshLayout>
</android.support.v4.widget.NestedScrollView>
现在在Java类中,在将数据添加到recyclerview之后,使NestedScrollView滚动到底部。
<强> nsView.fullScroll(View.FOCUS_DOWN); 强>
希望,它可以帮到你。答案 1 :(得分:0)
在java中,实际列表是基于零的。例如。 list [0,1,2]的大小为3,但最后一个位置是2,因为它以0开头。
public class BinaryTreeNode<T extends Comparable<T>>
{
...
public T findMax(BinaryTreeNode<T> root) {
T max = null;
if(root == null) {
return null;
} else {
T left = findMax(root.left);
T right = findMax(root.right);
max = left.compareTo(right) <= 0 ? right : left;
if(max.compareTo(root.getData()) < 0) {
max = root.getData();
}
return max;
}
}
...
}
答案 2 :(得分:0)
它适合你。在 LayoutManager 中使用setReverseLayout=true
并将其设置为 recylcerView 。
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(linearLayoutManager);