Comments (3)
问题的原因还是在于 popupwindow 在显示之前,density 的值不是预期的值,所以只要想办法,在 popupwindow 显示布局之前将 density 的值调整到期望的值就可以咯,在 popupwindow 每次 show 之前调用一次 AutoSize.autoConvertDensity 应该就没问题了
我还是建议看看我新增的副单位,可以避免三方库和系统控件显示异常的问题
from androidautosize.
回到 App 时调用 AutoSize.autoConvertDensity(getActivity(), 830, false);,出现显示异常可能是切换回来,App 重新布局导致的,所以在重新布局之前重新设置density,还有要想完全规避这些系统控件或三方库控件的适配异常,建议使用副单位,框架可同时支持 dp 和 副单位,新页面使用副单位,等有空的时候再把旧页面的 dp 改成 副单位就可以了,详情请看 demo-subunits ,以下是介绍:
AndroidAutoSize 在版本 v0.9.1 之后,新增了副单位,区别与传统的今日头条方案,可以使用 pt、in、mm 这三种冷门单位在 layout 文件中布局,这样不光可以直接填写设计图中的 px 尺寸,不需要再将 px 转化为 dp 外,还可以规避修改 DisplayMetrics#density 所造成的对于其他使用 dp 布局的系统控件或三方库控件的不良影响
from androidautosize.
popupwindow如果本来就是show的状态,切回来时是正常的没有改变。但是这时重新new的popupwindow是不正常的。
我在Activity中onConfigurationChanged重新设置density,发现onConfigurationChanged有时会不回调。有时有作用有时没作用。于是我又在Application中registerComponentCallbacks中onConfigurationChanged设置栈顶的Activity的density,这样每次解锁屏幕时确实都会回调。但是有时还是会不起作用。
最后我把上面两种方法一起用,结果就没出现不起作用的情况了。
from androidautosize.
Related Issues (20)
- 没有人发现mm和pt的预览窗口的建立搞反了吗,我的xml的单位用的是mm,但是预览窗口要用pt的方式才能正常预览
- 难道没有人发现mm和pt的预览窗口搞反了吗 HOT 1
- Fatal Exception: java.lang.LinkageError: Class androidx.fragment.app.FragmentActivity method void android.app.Activity.onWindowFocusChanged() resolves differently in interface android.view.Window$Callback: Type list mismatch with void android.view.Window$Callback.onWindowFocusChanged(boolean) (declaration of 'androidx.fragment.app.FragmentActivity' appears in /data/app/-1/base.apk)
- 在开发sdk中使用mm副单位尽可能避免接入方冲突,但是如果接入方也使用该框架并使用其它副单位是不是就冲突了? HOT 1
- 使用这个框架后导致系统界面尺寸混乱,请问如何解决 HOT 5
- 鸿蒙
- 引入饺子播放器后,横屏切换竖屏后,播放按钮变大,其他控件正常 HOT 3
- 建议使用 Android Jetpack 组件里的 App Startup 库来初始化 HOT 3
- DatePicker,TimePicker展示不全问题 HOT 1
- 横屏设备上改为按高度适配后,图片模糊 HOT 2
- windowmanager中的view整体变小 HOT 2
- 在列表中使用Glide加载图片特定行出现放大问题 HOT 3
- Tried to access visual service WindowManager from a non-visual Context
- initCompatMultiProcess 出错
- 折叠屏如何适配
- ERROR:can only be called once~ HOT 2
- 每次打开布局都需要选择下预览设备
- 布局预览错乱 HOT 1
- Coil加载错误 HOT 2
- 同问折叠屏如何适配,如何动态修改基准宽高
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from androidautosize.