Showcaseview库在Recyclerview的第一个项目上多次调用

时间:2018-01-12 06:54:56

标签: android android-recyclerview showcaseview

我在我的代码中使用了https://github.com/florent37/TutoShowcase这个showcaseview库。

它在activityfragment中运行正常。但是当我在recyclerview项目中调用时,它会显示多个弹出窗口并停电。

mRecyclerViewList.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    Logger.log("Call");

                    TextView textView = (TextView) mRecyclerViewList.getChildAt(0).findViewById(R.id.txt_add_tocart_btn);
                    Logger.log("Textview" + textView);
                    textView.setFocusableInTouchMode(true);
                    TutoShowcase.from((Activity) context).setContentView(R.layout.tuto_showcase_tuto_sample)
                            .setFitsSystemWindows(true).on(textView).addRoundRect(35).showOnce("1").show();
                    // unregister listener (this is important)
                    if (Build.VERSION.SDK_INT < 16) {
                        mRecyclerViewList.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    } else {
                        mRecyclerViewList.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                    }
                }
            });

如何避免多次弹出?

2 个答案:

答案 0 :(得分:1)

您的问题如何避免多次弹出式广告

只需设置一个布尔值即可避免多次显示。

echo "Below are the files copied during RUN" | mailx -v \

-r "network@testserver.com" \

-s "Backup Summary" \

-S smtp="smtp.testserver.com:25" \

me@myhome.com

答案 1 :(得分:0)

OnGlobalLayoutListener的{​​{3}}所述:

  

在视图树中的全局布局状态或视图的可见性发生更改时调用。

这就是为什么你有很多很多展示观点的原因。每次ViewTree更改时,您都会生成showcase。

您不需要ViewTreeObserverGlobalLayoutListener

移动

TutoShowcase.from
例如,

onViewCreated