对于我的应用程序,我使用的是一个RecyclerView内部ScrollView,其RecyclerView高度基于其内容使用此库.滚动工作正在进行,但滚动时滚动不顺畅RecyclerView.当我滚动ScrollView它自己时,它滚动顺畅.
我用来定义的代码RecyclerView:
LinearLayoutManager friendsLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), android.support.v7.widget.LinearLayoutManager.VERTICAL, false);
mFriendsListView.setLayoutManager(friendsLayoutManager);
mFriendsListView.addItemDecoration(new DividerItemDecoration(getActivity().getApplicationContext(), null));
Run Code Online (Sandbox Code Playgroud)
该RecyclerView在ScrollView:
<android.support.v7.widget.RecyclerView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:id="@+id/friendsList"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud) android android-scrollview android-scroll android-recyclerview
到目前为止,我只是一名iPhone开发人员,现在我决定给Android一个旋转.我在Android上无法弄清楚的是如何以编程方式阻止滚动WebView?
类似于iPhone预防onTouchMove活动的东西会很棒!
有谁知道如何实现新的视差滚动效果 - 当您在PlayStore上打开应用程序并尝试向下滚动时,您可以看到效果,内容覆盖顶部图像.我怎样才能做到这一点?

android android-animation android-layout android-scroll material-design
x要滚动到的x位置
y要滚动到的y位置
onScrollChanged(int l, int t, int oldl, int oldt) 说:
l当前水平滚动原点.
t当前垂直滚动原点.
我想知道什么,在任何地方都找不到,x,y在哪里?左上方?中央?我尝试了一些测试但无法弄明白.
在Google Chrome和Play商店中.应用程序可以在滚动时隐藏操作栏,并允许用户方便地浏览.请帮我这样做.
我使用onTouchListener进行webview它不起作用.
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
getSupportActionBar().show();
break;
case MotionEvent.ACTION_UP:
getSupportActionBar().hide();
break;
default: break;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢
我有一个自定义的gridview,我正在检查循环方法以查找列表的结尾.如果滚动到达列表的末尾,它将再次向列表中添加一些元素.
gridview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
}
@Override
public void onScroll(AbsListView arg0, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
int lastInScreen = firstVisibleItem + visibleItemCount;
//is the bottom item visible & not loading more already ? Load more !
if((lastInScreen == totalItemCount) && (!loadingMore))
{
new LoadDataTask().execute();
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的异步任务类..
private class LoadDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
if (isCancelled()) {
return …Run Code Online (Sandbox Code Playgroud) 我虽然这将是一个简单的任务,但显然没有办法将listview滚动到底部.我发现的所有解决方案都使用setSelection(lastItem)方法的变体,它只将选择设置为最后一项,但不会滚动到它的底部.
在我的情况下,我有一个空的列表视图(有一个长的空视图标题集),我想滚动到它的底部.
那么,有没有办法做到这一点?
编辑:
所以对于那些感兴趣的人来说,工作解决方案是:
getListView().setSelectionFromTop(0, -mHeader.getHeight());
Run Code Online (Sandbox Code Playgroud)
和
getListView().scrollTo(mOffset)
Run Code Online (Sandbox Code Playgroud)
这也有效,右偏移(根据当前滚动位置计算),但可能会给你一些意想不到的结果.
我有一个带有LOOONG项目列表的微调器.我注意到的是,每当我尝试慢慢滚动微调器项目时,它突然让我回到微调器选择的顶部.我只是使用带有简单ArrayAdapter的标准Spinner.这不是一个真正的问题,但是当用户慢慢滚动时,选择会一直重置到顶部,这有点令人讨厌.您可以推送列表,但如果您慢慢滚动,将手指放在屏幕上,它会向上滚动到列表顶部.
还有其他人遇到过这个问题吗?它为什么会发生?有没有办法"解决"这个问题?
注意:我遇到的问题仅限于Spinner.
我有一个带有大量文本的TextView.此TextView已maxLines设置,因此它仅显示前8行左右.我还有一个"阅读更多"按钮,所以我自己处理扩展TextView.
我的问题是,有时TextView会滚动一点(一次只有半行),即使我从未指定任何滚动条.这个问题变得更糟,因为TextView在ListView中,所以当用户滚动主ListView时,TextView有时会滚动一点,如下所示:

如何阻止TextView滚动?
我使用 Jetpack Compose UI 构建一个简单的 TODO 应用程序。这个想法是有一个可以选中或取消选中的任务列表,并且选中的任务应该位于列表的末尾。
一切工作正常,除了当我检查屏幕上的第一个可见项目时,它会随着滚动位置向下移动。
我相信这与 有关LazyListState,有这样的功能:
/**
* When the user provided custom keys for the items we can try to detect when there were
* items added or removed before our current first visible item and keep this item
* as the first visible one even given that its index has been changed.
*/
internal fun updateScrollPositionIfTheFirstItemWasMoved(itemsProvider: LazyListItemsProvider) {
scrollPosition.updateScrollPositionIfTheFirstItemWasMoved(itemsProvider)
}
Run Code Online (Sandbox Code Playgroud)
所以我想禁用这种行为,但我没有找到方法。
下面是重现问题的简单代码和截屏视频。当我尝试检查“项目 0”、“项目 1”和“项目 4”时,此截屏视频中出现问题,但在检查“项目 7”和“项目 8”时,它按我预期的方式工作。
如果您选中或取消选中当前第一个可见项目的任何项目,不仅该项目位于整个列表中的第一个项目,其行为也相同。
class MainActivity : ComponentActivity() …Run Code Online (Sandbox Code Playgroud) android android-scroll android-jetpack-compose android-jetpack-compose-lazy-column
android-scroll ×10
android ×9
android-jetpack-compose-lazy-column ×1
android-view ×1
gesture ×1
spinner ×1
textview ×1