标签: infinite-scroll

NestedScrollView中的RecyclerView ScrollListener

我有一个EndlessRecyclerView结束了NestedScrollView.EndlessRecyclerView表示:当用户滚动到recyclerView的底部时,它会加载更多数据.这是已经实现的和其他地方的工作,但是当我把recyclerView内部NestedScrollViewOnScrollListener事件不火.

XML设计:

<NestedScrollView>

     <Other views/>

     <EndlessRecyclerView/>

</NestedScrollView >
Run Code Online (Sandbox Code Playgroud)

码:

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            // This is never fired! Here is where I implement the logic of EndlessRecyclerView
        }
    });
Run Code Online (Sandbox Code Playgroud)

如何获得上述案例的滚动事件?

我知道在彼此内部有两个可滚动视图并不好.但是,如果没有两个可滚动的视图,我怎么能有上述情况呢?

我已经按照这个链接但它不起作用:scrollview android里面的recyclelerview滚动事件

android infinite-scroll onscrolllistener android-recyclerview android-nestedscrollview

22
推荐指数
1
解决办法
9325
查看次数

jQuery Infinite Scroll - 当滚动速度很快时,事件会多次触发

好的,下面的代码"工作",当你滚动到页面底部时,AJAX函数被触发,结果被附加到页面上的#postswrapper div.

问题是:如果我到达页面底部时滚动非常快,AJAX会多次触发并将几组结果加载到#postswrapper div中(附加数量,"不需要的"结果取决于多少额外滚动通过快速滚动来触发事件).

最终,每次用户到达底部时,我只需要提供一组结果.我试过添加计时器等,但无济于事.它显然是在DOM中存储额外的滚动动作,然后按顺序触发它们.

有任何想法吗?

我正在使用jquery.1.4.4.js,如果这有助于任何人.无论如何,在这种情况下,e.preventDefault()不起作用.

$(window).scroll(function(e) {
    e.preventDefault();
    if ($(window).scrollTop() >= ($(document).height() - $(window).height())) {
        $('div#loadmoreajaxloader').show();
        $.ajax({
            cache: false,
            url: 'loadmore.php?lastid=' + $('.postitem:last').attr('id'),
            success: function(html) {
                if (html) {
                    $('#postswrapper').append(html);
                    $('div#loadmoreajaxloader').hide();
                } else {
                    $('div#loadmoreajaxloader').html();
                }
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

jquery infinite-scroll

21
推荐指数
1
解决办法
1万
查看次数

R:rvest:抓取动态电子商务页面

rvest在R中用来做一些刮擦.我知道一些HTML和CSS.

我想获得URI的每个产品的价格:

http://www.linio.com.co/tecnologia/celulares-telefonia-gps/

当您在页面上下载时,新项目会加载(当您进行一些滚动时).

到目前为止我做了什么:

Linio_Celulares <- html("http://www.linio.com.co/celulares-telefonia-gps/")

Linio_Celulares %>%
  html_nodes(".product-itm-price-new") %>%
  html_text()
Run Code Online (Sandbox Code Playgroud)

我得到了我需要的东西,但仅仅是25个第一个元素(默认加载).

 [1] "$ 1.999.900" "$ 1.999.900" "$ 1.999.900" "$ 2.299.900" "$ 2.279.900"
 [6] "$ 2.279.900" "$ 1.159.900" "$ 1.749.900" "$ 1.879.900" "$ 189.900"  
[11] "$ 2.299.900" "$ 2.499.900" "$ 2.499.900" "$ 2.799.000" "$ 529.900"  
[16] "$ 2.699.900" "$ 2.149.900" "$ 189.900"   "$ 2.549.900" "$ 1.395.900"
[21] "$ 249.900"   "$ 41.900"    "$ 319.900"   "$ 149.900" 
Run Code Online (Sandbox Code Playgroud)

问题:如何获取此动态部分的所有元素?

我想,我可以滚动页面,直到所有元素都被加载,然后使用html(URL).但这似乎很多工作(我计划在不同的部分这样做).应该有一个程序化的工作.

任何暗示都是受欢迎的!

r web-scraping infinite-scroll rvest

21
推荐指数
1
解决办法
9494
查看次数

RecyclerView无限无限滚动问题

我正在尝试使用RecyclerView实现Endless Infinite Scrolling,但是我只获得了前10条记录,没有获得接下来的10条记录,甚至在尝试向下滚动时没有取得任何进展.

虽然我想要在滚动上获得接下来的10条记录等等......但只获得前10条记录

这里我上传了我的JSON 副本 - 但我无法从同一个网址获取数据,这就是我使用客户端的网址和本地主机的原因.

我正在学习教程

这是我的完整代码,我可以知道我在哪里做错了吗?

JSON:

{
  "names": [
    {
      "name": "Name 1"
    },
    {
      "name": "Name 2"
    },
    ....
    {
      "name": "Name 60"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

日志:

D/name -(13759): Name 1
D/name -(13759): Name 2
.......................
D/name -(13759): Name 60
Run Code Online (Sandbox Code Playgroud)

这是我更新的代码,我用它来解析JSON数据

MainActivity.java:更新

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;

private TextView tvEmptyView;
private RecyclerView mRecyclerView;
private DataAdapter mAdapter;
private LinearLayoutManager mLayoutManager;

private ArrayList<Student> studentList;

protected Handler handler;

@Override
protected void …
Run Code Online (Sandbox Code Playgroud)

android json infinite-scroll endlessscroll android-recyclerview

21
推荐指数
1
解决办法
1万
查看次数

Twitter引导程序附带infinitescroll和window.resize

通过阅读一些相关的问题,我意识到$.affix('refresh')twitter bootstrap词缀组件根本没有可用的方法 - 我的问题虽然相关,但可能只是刷新之间的一个额外步骤,让我试着解释一下.

我有一个标准bootstrap导航栏的页面.在我的情况下,当用户滚动超过x像素时,我将在其下方添加"引脚"的子导航(在我的情况下,导航栏的高度为41px,所以在41px时,词缀开始并通过将.affix类更改为.affix {top:41px}all) )

因此,对于第一个词缀,我可以使用仅限html的属性.

在页面的下方(本质上可以被认为是"第二页")我有另一条导航,一旦用户滚动到某个位置就应该"粘贴"并替换第一个子导航 - 假定第二个导航的位置页面/词缀是可变的,因为内容我使用js来计算第一页的高度,并offset: {top:xxx}根据我得到的内容进行设置.

这也很好/正如预期的那样,用户向下滚动一点,第一个子导航词缀开始,如果他继续滚动并到达第二个子导航进一步向下页面它踢,并替换第一个词缀的子-nav(它实际上并不替换它本身,而是覆盖更高的z-index)

从这里开始,我有两个问题,我无法找到解决方案:

  1. 当用户重新调整窗口大小时,第一页的内容当然会变得更长,这会改变页面上的词缀的原始偏移顶部尺寸.首先,我认为简单的调用.affix('refresh')将是/可能是解决方案,但当然这个方法在组件上甚至不可用.接下来,我想我可以再次手动重新计算高度并重新创建$('.my-second-affix').affix({offset: {top:x-new-offset}});- 但由于某种原因,这似乎根本不起作用,我无法弄清楚为什么:(

  2. 接下来要解决的问题是我还在使用jquery infinitescroll来加载越来越多的页面...每个页面可能有不同阶段的其他子导航,我想加贴并替换现在最后一个词缀在顶部.

注意我还想确保如果用户向后滚动另一个方向,以前附加的子导航将重新附加自己向后移动(我怀疑只要附加偏移是正确的,它们就会很好)

希望这个解释足以突出我的问题,有人要么已经处理过此问题,要么可以为解决方案提供一些指导.我试图让偏移量成为一个从顶部返回当前偏移量的函数(如另一个问题Twitter bootstrap更改词缀偏移量中所述),但由于某种原因,它也无法按预期工作.

任何帮助是极大的赞赏

jquery window-resize infinite-scroll twitter-bootstrap

20
推荐指数
1
解决办法
1437
查看次数

无限的ViewPager

这似乎是可能的,但我在确定如何实现ViewPager无限期页面时遇到一些麻烦.

我的用例是一个日历,一次显示一个月,但可以通过分页足够的时间切换到任何月份.

目前我只是extending PagerAdapter,并且MonthViews添加了3个自定义,如下所示:

    @Override
    public Object instantiateItem(View collection, int position) {
        final MonthView mv = new MonthView(HistoryMonthActivity.this);
        mv.setLayoutParams(new ViewSwitcher.LayoutParams(
                android.view.ViewGroup.LayoutParams.MATCH_PARENT,
                android.view.ViewGroup.LayoutParams.MATCH_PARENT));
        mv.setSelectedTime(mTime);

        ((DirectionalViewPager) collection).addView(mv, 0);

        return mv;
    }
Run Code Online (Sandbox Code Playgroud)

我想一次只MonthView在内存中保存3 秒,这样MonthView当用户使用Tab键时,在每个数据库中显示数据都没有太大的延迟.因此,每次显示新页面时,我都需要删除一个MonthView并添加一个MonthView.如果有人对同样的功能有更好的想法,我很乐意听到它!

我正在考虑尝试使用FragmentStatePagerAdapter.

android infinite-scroll android-viewpager

19
推荐指数
2
解决办法
2万
查看次数

按下后退按钮后转到其他页面时,滚动位置不会重置

我在angularjs应用程序中滚动有问题.

目前它有2页:第一页是客户列表,您可以选择其中一个并查看其详细信息.第二个是公司列表,它的工作方式相同.

我正在使用面板在它们之间导航$location.path().该应用程序还有一个后退按钮,使用$window.history.back().

当您选择客户或公司列表中的某个项目,然后在按下该按钮后,您将返回到上一页(客户或公司列表)并恢复滚动位置.我正在使用标准$window.history.back()功能,没有实现任何自定义.

但这里出现问题:如果没有向任何方向滚动,只需转到另一个页面(到其他项目列表)滚动位置将不会重置.但如果你只是稍微滚动一下,它的位置就会重置.此外,如果你不使用后退按钮一切正常.

所以,问题是:在使用后转到另一页时我们如何重置滚动位置$window.history.back()

我也使用infinite-scroll插件,如果重要的话.但即使我关闭它,没有任何改变,所以我猜问题不在于插件.

javascript scroll infinite-scroll angularjs

19
推荐指数
1
解决办法
1233
查看次数

RecyclerView getChildCount()和getItemCount()返回相同的值

RecyclerView有一个InfiniteScrollListener并且在该侦听器中,在OnScrolled()方法I中计算可见项和总项数以检查是否应该加载新项.当totalItemCount和visibleItemCount相同时,它会导致无限循环加载.听众与我RecyclerView没有CoordinatorLayoutNestedScrollView作为父母的其他人完美无瑕地工作.我想保留这种结构,因为客户不会接受更改.

我在活动中有一个像这样的布局的片段

CoordinatorLayout{
 NestedScrollView{
    RecyclerView{
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

sdk版本

compileSdkVersion 24
buildToolsVersion "23.0.3"
...
minSdkVersion 21
targetSdkVersion 24
Run Code Online (Sandbox Code Playgroud)

fragment_profile.xml作为父布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay"
        app:layout_behavior="com.paxotic.paxira.util.behavior.AppBarFlingBehavior">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="@dimen/app_bar_height_small"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#000000"
                app:layout_collapseMode="parallax">

                <ImageView
                    android:id="@+id/img_background"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:alpha="0.5"
                    android:scaleType="centerCrop"
                    tools:src="@drawable/bg_greeting_activity" />

            </RelativeLayout>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <include
        layout="@layout/activity_profile_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.FloatingActionButton
       ... />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

fragment_profile.xml作为子布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" …
Run Code Online (Sandbox Code Playgroud)

java android infinite-scroll

16
推荐指数
1
解决办法
1622
查看次数

“react-infinite-scroll-component” 一次调用后停止工作(loadMore 只被调用一次)

我使用react-infinite-scroll-component库进行分页,但即使hasMore为true,loadMore也会被调用一次。

     <InfiniteScroll
      dataLength={100}
      pullDownToRefreshThreshold={50}
      next={loadMoreConversation}
      scrollableTarget="scrollableDiv"
      hasMore={true}
      loader={<h4>Loading...</h4>}
    >
      <ChatItemList
        chatItems={chatItems}
        isInDeleteMode={deleteActive}
        onBottomDrawerHandler={onBottomDrawerHandler}
      />
    </InfiniteScroll>
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题,我做错了什么?

pagination infinite-scroll reactjs react-infinite-scroll-component react-pagination

16
推荐指数
1
解决办法
1万
查看次数

使用无限滚动进行同位素v2过滤 - 过滤器未找到所有项目且窗口未在过滤器上调整大小

当心!

Isotope的GitHub仓库还有待处理的功能请求问题,如果您有兴趣查看官方文档和演示(如何结合同位素,无限滚动,过滤和排序),您应该添加一个""反应.它由Isotope的创造者打开以衡量兴趣.如果有兴趣,请upvote!

TL; DR:为了帮助获得官方文档和演示,请转到此处并添加""反应.


尝试使用Isotope JS插件和Paul Irish(可悲的是未维护的)Infinite Scroll插件拼凑出可过滤的布局.

过滤有点工作.最初它过滤第1页内容.为了过滤不在页面1上的项目,我需要向下滚动(我想这是将元素带入浏览器的内存中,从而使其可用于过滤脚本?)

通过一组初始页面内容的选择框(即:第1页的内容).

问题1: 如何让过滤器适用于所有页面项?ie:如何引用过滤器脚本中的所有元素,即使那些尚未通过无限滚动进入页面的元素?

问题2: 一旦我向下滚动并且所有元素都是可过滤的,窗口就不会在过滤时调整大小.因此,当通过过滤器只显示一个或两个元素时,仍然可以向下滚动页面(即使没有显示任何元素).在检查了这些元素后,我发现它们仍然在DOM中.

过滤脚本

function filterTags(){
  isotopeInit();

  var $checkboxes = $('#tag-wrap input')

  $checkboxes.change(function(){
    var arr = [];
    $checkboxes.filter(':checked').each(function(){
      var $dataToFilter = $(this).attr('data-filter');
      arr.push( $dataToFilter );
    });
    arr = arr.join(', ');
    $container.isotope({ filter: arr });
  });
};
Run Code Online (Sandbox Code Playgroud)

同位素初始化

function isotopeInit(){
  var $container = $('.post-excerpts').imagesLoaded( function() {
    $container.isotope({
      itemSelector: '.post-excerpt-block-wrap',
      layoutMode: 'masonry',
      animationEngine: "best-available",
      masonry: {
        columnWidth: '.post-excerpt-block-wrap' 
      },
      transitionDuration: '2.0',
       hiddenStyle: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery filter infinite-scroll jquery-isotope

15
推荐指数
1
解决办法
5991
查看次数