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

滚动按钮上的“回收器视图”并单击到特定位置[重复]

郦良才
2023-03-14

我正在使用网格布局管理器使用回收器视图。我想在点击按钮时滚动循环视图。(单击按钮时,我正在通过位置,我的项目将突出显示)。所以我想在顶部显示突出显示的项目。可能是项目位于不同的位置。

onViewCreated在我初始化的位置-----

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    recycleView = view.findViewById(R.id.recycler_vieww);

    lLayout = new GridLayoutManager(context, 3);

    recycleView.setLayoutManager(lLayout);
   /* ItemOffsetDecoration itemDecoration = new ItemOffsetDecoration(context, R.dimen.item_offset);
    recycleView.addItemDecoration(itemDecoration);*/

    String channelId = "";
    if (tvStatus != null && tvStatus.getData() != null && tvStatus.getData().getDetails().get(0).getChannelData() != null) {

        if (tvStatus.getData().getDetails().get(0).getCurrentFeature().equalsIgnoreCase("channel")) {
            //rcAdapter = new Televison_Adapter(context, chnlList,"43", shared, readDb);

            if (tvStatus.getData().getDetails().get(0).getChannelData() != null) {

                channelId = tvStatus.getData().getDetails().get(0).getChannelData().getChannelId();

            }
        }
    }



    rcAdapter = new Televison_Adapter(context, chnlList, channelId, shared, readDb,this);
    rcAdapter.setOnChannelSelectListner(this);
    rcAdapter.setOnSelectedListItemListner(this);

    recycleView.setAdapter(rcAdapter);

    rcAdapter.notifyDataSetChanged();

}

接口抽象方法---从我想滚动我的回收器视图和位置是从适配器类传递的。

@Override
public void getItemPosition(final int position) {



    /*RecyclerView.SmoothScroller smoothScroller = new
            LinearSmoothScroller(context) {
                @Override protected int getVerticalSnapPreference() {
                    return LinearSmoothScroller.SNAP_TO_START;
                }
            };

    smoothScroller.setTargetPosition(position);
    lLayout.startSmoothScroll(smoothScroller);*/

    recycleView.scrollTo(0,1000);

}

共有1个答案

华宪
2023-03-14

您可以使用scrollTo()

  recyclerView.post(new Runnable() {
        @Override
        public void run() {
            recyclerView.scrollToPosition(adapter.getItemCount() - 1);
            // Here adapter.getItemCount()== child count
        }
    });

ScrollToPosition().

recyclerView.post(new Runnable() {
        @Override
        public void run() {
            recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
        }
    });
 类似资料:
  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:

  • 我使用以下代码来处理行点击。(来源) 然而,如果我想在每一行上都有一个删除按钮,这是可行的。我不知道如何用这个实现这一点。 我附加了OnClick侦听器来删除按钮,它可以工作(删除该行),但它也会在整行上触发onClick。 如果单击一个按钮,有谁能帮我避免整行单击吗。 谢谢。

  • 我有一个包含单选按钮的回收器视图。 现在我只想从列表中选择一个单选按钮并获得它的值 下面我附上了截图。 回收器视图的截图 下面是我到目前为止尝试的链接。 http://www.zoftino.com/android-recycerview-radiobutton 在回收视图中仅选择一个radiobutton 如何只选择一个RadioButton与RecolyerView Android? 从Rec

  • 我有一个集合视图,在集合视图单元格中有一个名为furnitureSelectionBtn的按钮。 当我点击集合视图中的按钮时,它将按钮图像设置为Selected.png。当我再次点击它时,它将被取消选中,我将其设置为unselected.png图像。当我点击按钮时,cardselection方法会被触发,并且我将点击的索引保存在AllFurnituresArray中。 现在,当我滚动这个集合视图时

  • 我使用了以下代码。我试图在回收器视图中膨胀多个布局。用这个我得到了铸造错误。无法将ViewWholder1转换为OnBindViewWholder中的ViewWholder(第二个ViewWholder)。通过一些调试,我发现OnCreateViewWholder中的int viewtype调用的位置不同于OnBindViewWholder中的int位置。你能解释一下两者的区别吗?我能做些什么来纠