我有一个RecyclerView的代码.
recyclerView = (RecyclerView)rootview.findViewById(R.id.fabric_recyclerView);
recyclerView.setLayoutManager(layoutManager);
recyclerView.addItemDecoration(new RV_Item_Spacing(5));
FabricAdapter fabricAdapter=new FabricAdapter(ViewAdsCollection.getFabricAdsDetailsAsArray());
recyclerView.setAdapter(fabricAdapter);
Run Code Online (Sandbox Code Playgroud)
我需要知道RecyclerView在滚动时何时到达最底部位置.可能吗 ?如果有,怎么样?
当用户到达列表中可见的项目时,如何在底部显示进度条.
我编写了一个代码,我使用Web服务获取数据,现在我想填充部分记录,因为我的JSON中有大约630条记录.
这是我用来从JSON获取数据并填充到RecyclerView中的整个代码.
以下是我的JSON外观,但真正的JSON包含600多条记录:
http://walldroidhd.com/api.php
Run Code Online (Sandbox Code Playgroud)
有人可以指导我在我的代码中进行更改吗?
我希望每当用户使用进度条滚动到底部时填充更多记录,我仍然显示所有记录.
RecyclerViewFragment.java:
public class RecyclerViewFragment extends Fragment {
RecyclerView mRecyclerView;
LinearLayoutManager mLayoutManager;
RecyclerView.Adapter mAdapter;
ArrayList<NatureItem> actorsList;
private int previousTotal = 0;
private boolean loading = true;
private int visibleThreshold = 5;
int firstVisibleItem, visibleItemCount, totalItemCount;
public static RecyclerViewFragment newInstance() {
return new RecyclerViewFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_recyclerview_advance, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
actorsList = new …Run Code Online (Sandbox Code Playgroud) java onscrolllistener endlessscroll android-cardview android-recyclerview
我试图让我的RecyclerView循环回到我的列表的开头.
我已经搜遍了整个互联网,并设法检测到我的列表何时到达,但是我不确定从哪里开始.
这是我目前用于检测列表末尾的内容(在此处找到):
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
visibleItemCount = mLayoutManager.getChildCount();
totalItemCount = mLayoutManager.getItemCount();
pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();
if (loading) {
if ( (visibleItemCount+pastVisiblesItems) >= totalItemCount) {
loading = false;
Log.v("...", ""+visibleItemCount);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当滚动到最后,我希望在从列表顶部显示数据或滚动到列表顶部时可以看到视图我将从列表底部显示数据.
例如:
View1 View2 View3 View4 View5
View5 View1 View2 View3 View4
我有这个代码:
mRecycleView.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int[] firstVisibleItemPositions = new int[getResources().getInteger(R.integer.news_numbers_column)];
int pastVisiblesItems = ((StaggeredGridLayoutManager)getLayoutManager()).findFirstVisibleItemPositions(firstVisibleItemPositions)[0];
}
});
Run Code Online (Sandbox Code Playgroud)
当我滚动我的recycleview时,我收到此错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.support.v7.widget.OrientationHelper.getStartAfterPadding()' on a null object reference
at android.support.v7.widget.StaggeredGridLayoutManager$Span.findOneVisibleChild(StaggeredGridLayoutManager.java:2177)
at android.support.v7.widget.StaggeredGridLayoutManager$Span.findFirstVisibleItemPosition(StaggeredGridLayoutManager.java:2153)
at android.support.v7.widget.StaggeredGridLayoutManager.findFirstVisibleItemPositions(StaggeredGridLayoutManager.java:806)
at info.lanouvelletribune.apps.android.ui.fragments.NewsFragment$1.onScrollStateChanged(NewsFragment.java:90)
at android.support.v7.widget.RecyclerView.setScrollState(RecyclerView.java:751)
at android.support.v7.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:1535)
at com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView.onInterceptTouchEvent(ObservableRecyclerView.java:188)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2060)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431) …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用onscroll监听器.我的问题是每次向下滚动时如何获取20个新行?
我理解当我向下滚动网格视图时,将执行此代码.
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.totalItem = totalItemCount;
if ((totalItemCount - visibleItemCount) <= (firstVisibleItem + 20)) {
// the below when executed will get all the rows ,I only need 20 rows
handler.execute().get();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码
// the load more in the grid view, fetch new images.
mGridView.setOnScrollListener(new AbsListView.OnScrollListener() {
private int currentVisibleItemCount;
private int currentScrollState;
private int currentFirstVisibleItem;
private int …Run Code Online (Sandbox Code Playgroud) 我创建了Recycler View Grid.我希望实现分页.但我不明白它是怎么做的.我找到一个答案在这里输入链接描述
但它对我不起作用.mLayoutManager.findFirstVisibleItemPosition();我的LayOutManager中没有方法 .方法mRecyclerView.setOnScrollListener已弃用.如何在Recycler View Grid中实现分页?
朋友我正在使用listview并在滚动结束时滚动加载内容.但我面临的错误就像同一个url被多次调用一样,如果快速滚动,任何人都可以帮我解决这个问题.我已经走了SCROLL_STATE_IDLE,但不知道如何在我的代码中实现相同的.即使我没有触摸它的运行屏幕.我现在想知道如何在空闲状态下停止代码.在下面找到我的代码
int start = 0;
int limit = 3;
loadingMore = false;
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
int lastInScreen = firstVisibleItem + visibleItemCount;
if ((lastInScreen == totalItemCount) ) {
if(loadingMore == false){
start = lastInScreen - 1;
url = "http://www.dskjhf.com/web-servic/request_response.php?type=get_articles&start="
+ start + "&end=" + limit;
grabURL(url);
}
}}
}); …Run Code Online (Sandbox Code Playgroud) android listview android-listview android-scrollview android-scroll
我在LinearLayout中有一个水平的RecyclerView,上面有一个TextView,如下所示:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="7dp"
android:textColor="#FFa7a7a7"
android:textSize="15sp"
android:text="Hello, Android" />
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="185dp" />
Run Code Online (Sandbox Code Playgroud)
当有一个左滚动并且RecyclerView中的第一个项目不在视图中时,我希望TextView淡出.并且只要第一个项目进入视图(通过右滚动),就希望它能够淡入淡出.我知道我将不得不用来addOnScrollChangedListener()确定recyclelerView的第一项何时不在视野范围内,我无法确定的是用滚动行为淡出(或淡入)TextView的方法.
这是我的RecyclerView java片段:
mRecyclerView = (RecyclerView)rootView.findViewById(R.id.recyclerview);
mRecyclerView.setLayoutManager(getLayoutManager());
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud) 我需要有关onscroll方法的帮助...所以我们尝试了一些我在stackoverflow上发现的问题,但其中大多数都适用于linearlayout等。如果您能向正确的方向指出,那将大有帮助...
我正在使用instagram api加载图片。它一次发送20张图片,所以当我到达页面底部时,我需要加载更多图片
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
//configViews();
// mLayoutManager = new GridLayoutManager(this, 2);
// mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
....
}
Run Code Online (Sandbox Code Playgroud) 我想制作基于 RecyclerView 的列表,用户可以无限滚动。上面只有几个项目,但是每当用户滚动到末尾时,列表的第一个项目就会出现等等。此功能可以在两个滚动方向上工作。