-
Notifications
You must be signed in to change notification settings - Fork 2k
跳转带webView的Activity后,回到上一个页面,刷新RecyclerView导致item适配异常 #127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
遇到了同样的问题,我在Activity的getResources中调用了 |
看得出兄弟提 issues 时很用心,还写了 Demo,WebView 的确会重置 density,尝试下以下两种方案,也许在你适配失败时打印 density,density 是期望的值,但并不能说明在布局显示时 density 是正确的值,因为也可能布局在显示到屏幕之前的 0.0001秒,density 并不是期望的值,但在布局显示到屏幕到你打印 density 的期间,density 又被某些代码修改成期望的值了,比如你在 Holder 中调用的代码 |
问题解决了没,大佬们 |
在有问题的activity或fragment的onResume里修复一下density就可以了。 override fun onResume() {
super.onResume()
AutoSizeCompat.autoConvertDensityOfGlobal(resources)
} |
大佬,请问使用AndroidAutoSize在分屏的时候,如果刷新界面,界面出现布局乱了的现象,怎么解决,我目前只能暂时不支持应用分屏显示,
|
AutoSizeConfig.getInstance()
//屏幕适配监听器
.setOnAdaptListener(new onAdaptListener() {
@Override
public void onAdaptBefore(Object target, Activity activity) {
//使用以下代码, 可支持 Android 的分屏或缩放模式, 但前提是在分屏或缩放模式下当用户改变您 App 的窗口大小时
//系统会重绘当前的页面, 经测试在某些机型, 某些情况下系统不会重绘当前页面, ScreenUtils.getScreenSize(activity) 的参数一定要不要传 Application!!!
AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1]);
}
@Override
public void onAdaptAfter(Object target, Activity activity) {
}
}); |
图中的 “Hello World!” 都在一个RecyclerView中,跳转页面再回到这个页面后刷新,新创建的Holder的view适配失败(变小)。
demo项目:
https://github.com/shxhzhxx/AutoSizeBug
经过多次尝试后发现:
1、出问题的设备大体分成两类,每次都会出问题的(A类),偶尔会出问题的(B类)。
2、我手头的A类设备有:坚果3、华为平板M3青春版10。我手头的其他设备都属于B类。
3、跳转页面一定要包含WebView,且,横屏或实现CustomAdapt接口才会出问题。(WebView && ( landscape || CustomAdapt))
4、尝试在创建新的Holder(及View)前,调用AutoSizeCompat.autoConvertDensityOfGlobal(Resources),B类设备上问题解决,A类设备依然会适配失败。
5、适配失败时,resources.displayMetrics.density的值是正确的。
The text was updated successfully, but these errors were encountered: