当前位置: 首页 > 知识库问答 >
问题:

滚动至(垂直方向)中的特定位置

李烨烁
2023-03-14

我用GridLayoutManager实现了一个RecyclerView,它有垂直和水平滚动,我需要将布局滚动到特定的位置,引用了很多代码,但对我来说没有效果。

Java类代码:

void RackGen()
    {
        STRarray = (String[]) mStringList.toArray(new String[mStringList.size()]);
        ROWarray = (String[]) mRowList.toArray(new String[mRowList.size()]);

        numcol = Integer.parseInt(col);
        numdata = Integer.parseInt(num);

        rv = (RecyclerView) findViewById(R.id.rview);
        int numberOfColumns = numcol;

        GridLayoutManager GM2 = new GridLayoutManager(this,numberOfColumns);

        rv.setLayoutManager(GM2);



        rv.setNestedScrollingEnabled(true);
        rv.setHasFixedSize(true);
        adapter = new MyRecyclerViewAdapter(this, STRarray, ROWarray);
        rv.setAdapter(adapter);

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="20dp"
    android:layout_centerHorizontal="true"
    android:id="@+id/llzoom"
    android:orientation="vertical"
    >

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/nested_scroll_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    xmlns:android="http://schemas.android.com/apk/res/android">

        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scrollbars="none"
            android:overScrollMode="never">

        <android.support.v7.widget.RecyclerView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rview">

        </android.support.v7.widget.RecyclerView>


        </HorizontalScrollView>
                </ScrollView>
        </android.support.v4.widget.NestedScrollView>
</LinearLayout>

只有在添加了垂直和水平滚动的嵌套滚动视图后,滚动才能在两个方向上顺利工作。现在我需要滚动到特定的位置。

谢谢您

共有2个答案

萧树
2023-03-14

我知道这是一篇比较老的帖子,我还没有在嵌套的滚动视图上测试过这段代码,但是由于您只有一个位置值,所以可以尝试这种技术。

这非常适合滚动到带有动态自动拟合的回收器视图GridLayoutManager的当前选定视图(我使用自定义回收器视图进行自动拟合,而不是网格本身)。

我设置适配器后:

recyclerView.setAdapter(adapter);

我把(就在它下面创建):

recyclerView.post(new Runnable()
{
    @Override
    public void run()
    {
        layoutManager.scrollToPositionWithOffset(currentSelected, 0);
    }
});

它等待视图被绘制,然后滚动到给定的位置。它工作得很好!

我的想法是:https://stackoverflow.com/a/52895262/2905354

倪炎彬
2023-03-14

您需要在活动中引用嵌套的ScrollView,然后在该对象上调用scrollTo(x,y),例如:

NestedScrollView nestedScrollView  = (NestedScrollView) findViewById(R.id.nested_scroll_view);
nestedScrollView.scrollTo(x,y);

x和y是水平和垂直卷轴。

 类似资料:
  • 我想添加一种在中滚动菜单项的方法,就像在中滚动项列表一样。 假设我有10个菜单项。我希望一次只显示5个菜单项,我将使用底部或顶部的垂直滚动按钮来显示未列出的菜单项,并隐藏刚才看到的菜单项。 有可能吗?我使用的是JIDE软件的,点击它时会显示。我试图保持放置的命令栏的外观,因此除非真的有必要,否则我不想用替换它。

  • 我需要具有水平滚动行为的RecyclerView Gridlayout管理器。它必须添加子视图,就像它具有垂直方向时一样(例如(行1,列1)=索引0,(行1,列2)=索引1等等)。 目前垂直方向不允许水平滚动,并且适合设备宽度内的子视图。 编辑: 我在RecyclerView GridLayoutManager中有100行和150列,需要水平滚动视图。我隐藏和显示行,这只有在垂直方向上才可能。

  • 问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:

  • 我正在使用j文件选择器,我试图实现以下目标: https://i.stack.imgur.com/O6MNj.png 我试图强制LIST视图使用VERTICAL滚动条,或者我的第二个选项是禁用详细视图中的大小和修改列。 编辑: 有什么方法可以在jFileChooser中插入JScrollBar?

  • 本文向大家介绍JavaScript实现垂直向上无缝滚动特效代码,包括了JavaScript实现垂直向上无缝滚动特效代码的使用技巧和注意事项,需要的朋友参考一下 一、循环向上滚动的文字,如上面的滚动效果 二、实现的思路 1、建立三个层dome、dome1、dome2 2、垂直滚动的文字在dome1上 3、通过层的滚动来实现文字滚动 三、源代码 四、设置id为dome的层的div源代码 五、实现循环向

  • 问题内容: 我一直在尝试使文本像我们在ms-word表中那样在垂直方向上移动,但到目前为止,我只能做到这一点 ……我不满意,因为它是一个旋转的盒子……是不是有没有办法获得实际的垂直方向文字? 我只在演示中将旋转设置为305度,这不会使文本垂直。会,但我只是制作了演示以显示旋转。 问题答案: 替代方法:http : //www.thecssninja.com/css/real-text-rotati