在Horizo​​ntal Recycler列表视图中管理按钮的可见性

时间:2017-12-12 10:24:56

标签: android android-recyclerview position recycler-adapter

我有一个水平中心变焦图像列表,我想在其中显示中心比例视图的播放图标和文字

我可以扩展中心Imageview,但在通过模型管理时会出现位置问题。

但有时它显示,有时不显示。但我在类onScrollStateChanged方法中完美地获得了中心imageview的位置。

以下课程我在我的活动中使用了布局管理器和scrollview

START n=node:node_auto_index("val1:*1*") RETURN n
union 
START n=node:node_auto_index("val2:*1*") RETURN n;

我正在使用适配器方法更新我的模型

  mAdapter = new ContactScreenAdapter(ContactScreenActivity.this, mContext, listFavoriteContact);
        scrollZoomLayoutManager = new ScrollZoomLayoutManager(this, Dp2px(25));
        recyclerFavoriteList.setLayoutManager(scrollZoomLayoutManager);
        recyclerFavoriteList.setAdapter(mAdapter);
        recyclerFavoriteList.addOnScrollListener(new RecyclerView.OnScrollListener() {

            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
                if (!(layoutManager instanceof CircleLayoutManager) && !(layoutManager instanceof ScrollZoomLayoutManager)) {
                    mAutoSet = true;
                    return;
                }

                if (!mAutoSet) {
                    if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                        final int dx;
                        if (layoutManager instanceof CircleLayoutManager) {
                            dx = ((CircleLayoutManager) layoutManager).getOffsetCenterView();
                        } else {
                            dx = ((ScrollZoomLayoutManager) layoutManager).getOffsetCenterView();
                        }
                        recyclerView.smoothScrollBy(dx, 0);
                        Log.d(TAG,"####  dx : "+ ((ScrollZoomLayoutManager) layoutManager).getCurrentPosition());
                        mAdapter.setSelecteditem(((ScrollZoomLayoutManager) layoutManager).getCurrentPosition());

                    }
                    mAutoSet = true;
                }
                if (newState == RecyclerView.SCROLL_STATE_DRAGGING || newState == RecyclerView.SCROLL_STATE_SETTLING) {
                    mAutoSet = false;
                }
            }
        });

提前感谢您的帮助。

0 个答案:

没有答案