2015-03-30 64 views
1

首先,我创建的应用程序需要类似于iOS中的透明活动+模糊。Android:SwipeRefreshLayout导致RecyclerView在更新截图时没有更新?

我决定用户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。我得到的结果总是从我第一次启动新活动时返回相同的位图

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

我需要帮助,对此,任何建议都会很感激,谢谢!

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

UPDATE ..

情侣研究这个问题的几天后,我发现,真正的原因是SwipeRefreshLayout。第一次onRefreshListener调用后,我的截图不会更新。

回答

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);后解决了这个问题对我来说

+0

谢谢大家的帮助,我会尝试你的方法:) 但实际上,如果避免这个问题通过使用替代库 你也可以试试 https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh – Krit 2015-06-03 16:35:31