Articles of android nestedscrollview

NestedScrollView中的RecyclerView ScrollListener

我在NestedScrollView的末尾有一个NestedScrollView 。 EndlessRecyclerView意味着:当用户滚动到recyclerView的底部时,它会加载更多数据。 这已经实现并在其他地方工作但是当我将NestedScrollView放在NestedScrollView , OnScrollListener事件不会触发。 XML设计: 码: 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 } }); 如何获得上述案例的滚动事件? 我知道在彼此内部有两个可滚动视图并不好。 但是,如果没有两个可滚动的视图,我怎么能得到上述情况呢? 我已经按照这个链接但它不起作用: 在scrollview android里面的recyclelerview滚动事件

当层次结构中存在NestedScrollView时,Android不会调整我的布局大小

我刚刚在使用Android 7.1.1和Android支持库25.3.1的Nexus 9上观察到以下行为。 这是我的活动的布局: 这就是它在屏幕上的外观: 当屏幕键盘显示时,系统会调整活动的布局大小,从而占用从屏幕顶部到键盘的空间。 请在下面的屏幕截图中考虑红色虚线: 但是,当我用NestedScrollView替换ScrollView时,系统不会调整布局大小: 现在红色虚线位于键盘下方。 通过将android:windowSoftInputMode=”adjustResize”应用于活动可以轻松解决该问题: 红色虚线现在位于键盘上方。 我的问题是: 为什么我会观察到这种行为? NestedScrollView什么问题?

Recyclerview视图不能与setNestedScrollingEnabled一起使用,它也永远不会回收任何视图

我面临两个问题: 滚动侦听器将无法工作 当RecyclerView附加到NestedScrollView时,它永远不会回收任何视图。 它就像ScrollView中的线性布局。 它使用大量内存并造成滞后。 我在回收器视图的顶部附加了一个youtube播放器片段,因为我无法在回收器视图中放置片段。 在我的代码中,您可以看到有一个框架布局。 我的布局看起来像这样: 我想使用滚动侦听器来加载更多项目,所以我尝试了以下内容: @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { Log.i(TAG, “onScrolled: “); // bail out if scrolling upward or already loading data if (dy < 0 || dataLoading.isDataLoading()) return; final int visibleItemCount = recyclerView.getChildCount(); final int totalItemCount = layoutManager.getItemCount(); final int firstVisibleItem = layoutManager.findFirstVisibleItemPosition(); if […]

嵌套的scrollview会自动滚动到底部

我在NestedScrollView中有一个GridView。 每当GridView的内容发生变化时,我都使用下面的代码来调整GridView的大小。 这工作正常,但是当我从应用程序的片段3滑回到片段2(NestedScrollView所在的位置)时,NestedScrollView滚动到最底部。 奇怪的是,当从片段1滑动到片段2时不会发生这种情况。 在调整GridView大小后,它也不会直接发生。 如何通过滚动到底部来压制NestedScrollView? private static void resizeGridView(GridView gridView, int items, int columns) { ViewGroup.LayoutParams params = gridView.getLayoutParams(); params.height = singleGridHeight * items; gridView.setLayoutParams(params); gridView.requestLayout(); } 在片段之间滑动时会调用以下系统方法:

使用NestedScrollView,AppBarLayout和CoordinatorLayout平滑滚动和Fling

我正在开发一个应用程序,我正在使用带有CollapsingToolbarLayout和NestedScrollView的AppBarLayout。 我已成功实现了这一点并且工作正常。 现在我想要做的是,在Nestedscrollview上进行快速刷卡时,它应该完全滚动到顶部。 同样,在向屏幕底部投掷(快速向下滑动)时,它必须顺畅地滚动到底部。 但是现在,它只会卡在两者之间,这使它看起来很难看。 我已经尝试了许多可用的解决方案,但对我来说没有任何效果。 我目前的设置如下。 ——content————– 下面显示的最受欢迎的答案之一对我来说也不起作用。 无法滚动AppBarLayout并平滑地折叠工具栏和NestedScrollView

如何在底部检测滚动nestedscrollview android的位置?

我只是想在底部检测滚动nestedscrollview android的位置,以及to call函数。 我的代码是: scroll.getViewTreeObserver() .addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { int totalHeight = scroll.getChildAt(0).getHeight(); int scrollY = scroll.getScrollY(); Log.v(“position”, “totalHeight=” + totalHeight + “scrollY=” + scrollY); if (scrollY==totalHeight) { getPlaylistFromServer(“more”); } } }); 但总高度与MAX ScrollY不同。 怎么解决?

Espresso,当NestedScrollView或RecyclerView在CoordinatorLayout中时滚动不起作用

看起来CoordinatorLayout会破坏Espresso操作的行为,例如scrollTo()或RecyclerViewActions.scrollToPosition() 。 NestedScrollView问题 对于像这样的布局: … … 如果我尝试使用ViewActions.scrollTo()滚动到NestedScrollView内的任何视图,我发现的第一个问题是我得到一个PerformException 。 这是因为此操作仅支持ScrollView而NestedScrollView不会扩展它。 这里解释了这个问题的解决方法,基本上我们可以在scrollTo()复制代码并更改约束以支持NestedScrollView 。 如果NestedScrollView不在CoordinatorLayout但是只要将它放在CoordinatorLayout ,滚动操作就会失败,这似乎有效。 RecyclerView问题 对于相同的布局,如果我用RecyclerView替换NestedScrollView ,则滚动也会出现问题。 在这种情况下,我使用RecyclerViewAction.scrollToPosition(position) 。 与NestedScrollView不同,在这里我可以看到一些滚动发生。 但是,它看起来像滚动到错误的位置。 例如,如果我滚动到最后一个位置,它会显示倒数第二个但不是最后一个。 当我将RecyclerView移出CoordinatorLayout ,滚动工作正常。 目前,由于此问题,我们无法为使用CoordinatorLayout的屏幕编写任何Espresso测试。 任何遇到相同问题或知道解决方法的人?

如何滚动到scrollview内的recyclerview中的特定位置?

我已经搜索了很多关于我的查询,但没有一个是有用的。 我有一个recyclelerview和滚动视图中的一些静态数据,它位于root parentlayout中,如下所示。 我已经设定 – scrollview.scrollto(0,0); 因为每当我打开活动时它会跳转到recyclerview firstitem并且它会跳过recyclerview上方的静态数据。 recyclerview.setNestedScrollingEnabled(false); recyclerview.setfocusable(false); 对于smoothscroll。 问题是 – layoutmanager.scrollToPositionWithOffset(pos,0); 它不起作用。 在将适配器设置为recyclerview后,我已设置了aboveline。 也尝试使用NestedScrollView但是徒劳无功。 虽然我用过 layoutmanager.scrollToPosition(pos); 对于那些跳过代码的人,我已将match_parent设置为ScrollView,并将fillviewport设置为true。 这是我的布局。 include layout=”@layout/activity_coupons” android:visibility=”gone” />

嵌套的scrollview + recyclerview,奇怪的自动滚动行为

在一个视图分页器中,我有几个片段,其中一个片段使用带有标题和recyclerview的嵌套scrollview: 标签“header”代表了一个复杂的布局,我不想在这里发布,因为它会大量延伸代码。 当我在标签之间切换时,它会将海峡滚动到回收站视图。 标题是隐藏的,我必须向上滚动才能看到它。 关于是什么原因的任何想法? 如果我可以避免它,我不想在我的适配器中使用types。

如何让EditText占用所需的空间,与上面的内容一起滚动?

背景 我有一个在顶部有一些视图的布局,它应该可以与它们下面的EditText一起滚动。 EditText占用剩余的空间,尽可能多的空间。 这是一个演示它的示例POC布局(这里只使用了2个EditTexts): 我已经设置了一个背景框架,可以直观地显示EditText的大小。 问题 我已经find了很多我写的解决方案,但是没有一个能够很好地处理滚动。 我一直看到的,至少是其中一个问题: 无法滚动整个页面(只有EditText可能是可滚动的,我正在努力避免),因此无法再访问顶部的视图。 当我输入文本时,插入符号可能会出现在可见区域之外 当我输入越来越多的行时,它不会滚动整个页面。 仅在EditText本身。 我试过的 我尝试过这些解决方案: 所有这里 , 这里 , 这里 , 这里 。 也许更多,但我没有保持足够的轨道…… 我在清单中尝试了各种windowSoftInputMode值,并尝试在isNestedScrollingEnabled中设置isNestedScrollingEnabled。 尝试在XML中使用各种配置,让EditText占用所需的空间,以防止它在其中滚动。 这个问题 如何让底部的EditText占用尽可能多的空间,并且仍然可以滚动整个NestedScrollView,而不会出现编辑问题? 编辑:因为原始的应用程序有点复杂,底部有一些视图(在工具栏内部),当你没有专注于底部的EditText时自动隐藏,这就得到了我找不到的答案上class。 此外,我不小心将赏金给予错误的答案,所以这是一个新的赏金,在更复杂的POC上。 问题保持不变。 NestedScrollView应该保留在同一个地方,而不是在关注底部EditText时滚动。 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) container.setOnClickListener { contentEditText.requestFocus() contentEditText.setSelection(contentEditText.length()) } contentEditText.setOnFocusChangeListener { view, hasFocus -> autoHideLayout.visibility = […]