Android-Rich-text-Editor icon indicating copy to clipboard operation
Android-Rich-text-Editor copied to clipboard

useSoftwareLayerOnAndroid8 的问题

Open vanzh opened this issue 5 years ago • 7 comments

该方法只对8.0 api 26做了判定 ,8.1版本也是会出现的。

vanzh avatar Oct 16 '19 02:10 vanzh

多谢指出! 这个问题即便是用了 soft layer 也仅仅是解决了一部分, 还是会有其他问题.. 目前没找到合适的方法.

chinalwb avatar Oct 16 '19 03:10 chinalwb

8.0使用soft Layout 之后,就基本会出现内容变空白的问题。从日志看,似乎是 Soft Layout 有最大缓存限制,当EditText 内容多了,导致高度比较大的时间,这个缓存的字节也大,超过了限制从而无法进行soft 渲染。 too large to fit into drawing cache, needs 14236800 bytes, only 1536000 available

正常来说开硬件加速是可以,但是如果这是个8.0系统级的问题,那么挻好奇的是知乎他们这些软件是怎么处理这个问题的。

vanzh avatar Dec 12 '19 06:12 vanzh

遇到同样的问题啊,不知道怎么完美解决

android-1995 avatar Dec 17 '19 02:12 android-1995

内容变空白的发现是该activity未关闭硬件加速的原因,在activity启动时添加以下代码就不会变空白了

 if(Build.VERSION.SDK_INT != Build.VERSION_CODES.O &&
                Build.VERSION.SDK_INT != Build.VERSION_CODES.O_MR1 ) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
        }

vanzh avatar Jun 17 '20 02:06 vanzh

@vanzh 多谢!能提一个 PR 吗? 好让其他需要的人也能看到。

chinalwb avatar Jun 17 '20 03:06 chinalwb

内容变空白的发现是该activity未关闭硬件加速的原因,在activity启动时添加以下代码就不会变空白了

 if(Build.VERSION.SDK_INT != Build.VERSION_CODES.O &&
                Build.VERSION.SDK_INT != Build.VERSION_CODES.O_MR1 ) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
        }

给父布局也加上soft Layout 可以。但是不知道有没有其他问题。

283256248 avatar Nov 26 '20 02:11 283256248

@283256248 大神!

chinalwb avatar Nov 26 '20 02:11 chinalwb