Android:SwipeRefreshLayout导致RecyclerView在截屏时没有更新?

时间:2015-03-30 21:25:39

标签: android android-recyclerview

首先,我正在创建一个应用程序,需要像iOS中那样透明活动+模糊。

我决定使用整个窗口的getDrawingcache

        View decorView = activity.getWindow().getDecorView();
        decorView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
        decorView.setDrawingCacheEnabled(true);
        decorView.buildDrawingCache();
        image = Bitmap.createBitmap(decorView.getDrawingCache());
        decorView.destroyDrawingCache();
        decorView.setDrawingCacheEnabled(false);

然后执行一些模糊方法(stack blur)并设置此活动的背景

        activity.getWindow().setBackgroundDrawable(bd);

除非我的原始活动包含RecyclerView,否则此方法非常有效。我得到的结果总是从我第一次启动新活动时返回相同的位图

例如。首次启动活动,正确设置背景图像。但在那之后(第2个,第3个等等......)背景图像与第一个相同。

我需要帮助,任何建议都会非常感谢,谢谢!!

如果标题不好,您可以自由编辑。

UPDATE ..

经过几天调查这个问题,我发现真正的原因是SwipeRefreshLayout。我的屏幕截图在第一次调用onRefreshListener后不会更新。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题

添加:

        mRecyclerView.postDelayed(new Runnable()
        {
            @Override
            public void run()
            {
                mRecyclerView.layout(0,0,mRecyclerView.getWidth(),mRecyclerView.getHeight());

                if (mRecyclerView.isDrawingCacheEnabled())
                {
                    mRecyclerView.destroyDrawingCache();
                }
            }
        },50);
mSwipeLayout.setRefreshing(false);为我解决问题之后