Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android回收视图问题_Android_Google Maps_Google Maps Markers_Android Recyclerview - Fatal编程技术网

Android回收视图问题

Android回收视图问题,android,google-maps,google-maps-markers,android-recyclerview,Android,Google Maps,Google Maps Markers,Android Recyclerview,我试图得到一些工作应用程序界面的外观和感觉。现在我被它的一个活动流程卡住了。喜欢 我被两件事困住了: 问题是:如何像在视频中一样在marker和recyclerview之间进行绑定。我还想根据recyclerview中可见的项目显示标记 完成:我尝试了recyclerview addonScrollListener,但这对我不起作用 回收视图: final LinearLayoutManager manager = new LinearLayoutManager(this, LinearLay

我试图得到一些工作应用程序界面的外观和感觉。现在我被它的一个活动流程卡住了。喜欢 我被两件事困住了:

问题是:如何像在视频中一样在marker和recyclerview之间进行绑定。我还想根据recyclerview中可见的项目显示标记

完成:我尝试了recyclerview addonScrollListener,但这对我不起作用

回收视图:

 final LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
        recyclerView.setLayoutManager(manager);
        recyclerView.setHasFixedSize(true);
        this.bottomSheetAdapter1 = new com.development.haebix.adapters.BottomSheetAdapter(this, mEventInfos);

        recyclerView.setAdapter(bottomSheetAdapter1);
        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);

                setMarkerSelected(mEventInfos.get(newState).getMarker());
            }
        });
根据位置代码更改标记颜色

private void setMarkerSelected(Marker marker) {
        if (previousMarker != null) {
            previousMarker.setIcon(BitmapDescriptorFactory.fromBitmap(new IconGenerator(this)
                    .makeIcon("school")));}
        IconGenerator icon = new IconGenerator(this);
        icon.setStyle(IconGenerator.STYLE_ORANGE);
        marker.setIcon(BitmapDescriptorFactory.fromBitmap(icon.makeIcon("school")));
        previousMarker = marker;

    }
请帮我提一些建议/建议,以便我能做到这一点。提前谢谢

试着这样做:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            int position = mLayoutManager.findFirstCompletelyVisibleItemPosition();
            setMarkerSelected(mEventInfos.get(position).getMarker());
        }
    });

mLayoutManager是您用于recyclerview的布局管理器

我认为这是视图寻呼机而不是recyclerview。@PushpendraChoudhary它是RecyclerService我在谈论您基于该链接的需求。@PushpendraChoudhary是的,我也在谈论同样的内容。如果你这么认为的话,它是可回收的。不,它不起作用。应用程序在索引不足的情况下崩溃。因为Position coming-1您是否正在执行此操作
OnScroll
onScrollStateChanged
?如果没有可见的项目,它将返回-1,但在滚动时会崩溃。请在使用它之前尝试检查Position是否不是-1?