Skip to content
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

关于在别的应用上横屏的问题 #135

Closed
renbin1990 opened this issue Apr 6, 2021 · 14 comments
Closed

关于在别的应用上横屏的问题 #135

renbin1990 opened this issue Apr 6, 2021 · 14 comments

Comments

@renbin1990
Copy link

在本app上竖屏显示悬浮窗,切换到别的应用上横屏,悬浮窗只能移动半个屏幕,这个有什么好的解决方案吗

@zofnk
Copy link

zofnk commented Apr 8, 2021

我也遇到了 , 排查了下 , 是
TouchUtils.ktinitBoarderValue(view: View, params: LayoutParams)方法中
parentWidth = DisplayUtils.getScreenWidth(context)这里获取到旋转后的屏幕宽度还是旋转前的竖屏宽度

目前刚改了下 , 还没详细测 , 不知道会还有别的什么问题 , 老哥可以先测看看

//屏幕是否竖屏
val Context.isPortrait: Boolean
        get() = resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT

//获取屏幕宽度
val Context.screenWidth: Int
        get() {
            val manager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
            val metrics = DisplayMetrics()
            manager.defaultDisplay.getRealMetrics(metrics)
            return metrics.widthPixels

把原先的parentWidth = DisplayUtils.getScreenWidth(context)改成

parentWidth = if (context.isPortrait){
            context.screenWidth
        }else{
            context.screenWidth - getNavigationBarHeight(context)
        }

@renbin1990
Copy link
Author

好的,谢谢,我这边先看看

@renbin1990
Copy link
Author

问题已解决,谢谢您的帮助

@princekin-f
Copy link
Owner

感谢反馈,新版已优化v 2.0.2

/**
 * 获取屏幕宽度(显示宽度,横屏的时候可能会小于物理像素值)
 */
fun getScreenWidth(context: Context): Int {
    val windowManager = context.getSystemService(Service.WINDOW_SERVICE) as WindowManager
    val outMetrics = DisplayMetrics()
    windowManager.defaultDisplay.getMetrics(outMetrics)
    return outMetrics.widthPixels
}

@JavanLuo
Copy link

JavanLuo commented May 25, 2021

直接使用V2.0.2 依旧存在这个问题
按照2楼的方法修改 可正常使用

机型:Xiaomi Redmi 6 Pro

@xulonc
Copy link

xulonc commented Jun 21, 2021

直接使用V2.0.2 依旧存在这个问题
按照2楼的方法修改 可正常使用

机型:Xiaomi Redmi 6 Pro

这里具体是怎么该的?

我使用V2.0.2也有问题

@songxiaoliang
Copy link

@princekin-f 问题没解决啊,2楼的可以解决,什么时候更新?

@princekin-f
Copy link
Owner

@princekin-f 问题没解决啊,2楼的可以解决,什么时候更新?

v2.0.3

@songxiaoliang
Copy link

@princekin-f 如果是在当前activity做横竖屏切换是没问题的(2.0.3的方案已经满足),但是如果从一个横屏activity,跳转到了一个竖屏activity,滑动区域仍然不对,分析了下源码,context是在创建时传入,所以在横屏页面跳转到竖屏页面后,context还是横屏页面的。这个问题要如何解决,如何去刷新这个context

@songxiaoliang
Copy link

@princekin-f 还有一个疑问,contentProvider在这里面的作用是什么,仅仅是为了调用LifecycleUtils来注册activity切换的监听吗?

@licoba
Copy link

licoba commented Nov 19, 2021

我是碰到了,悬浮窗的宽度只能显示半个屏幕(也就是实际的物理屏幕宽度)的问题,不知道该怎么解决,拖动倒是可以整个屏幕拖动

@feixue1232
Copy link

我是碰到了,悬浮窗的宽度只能显示半个屏幕(也就是实际的物理屏幕宽度)的问题,不知道该怎么解决,拖动倒是可以整个屏幕拖动

在横屏状态下,只显示半屏的问题解决了么。。也遇到了这个问题哎。。

@xiongbicaijiao
Copy link

解决了吗?上面的库貌似只能修改当前Activity的横屏,其他App Activity 横屏后仍会有右半边不能拖动问题

@Ein-xinlong
Copy link

我也遇到了这个问题,在切换横竖屏之前处理EasyFloat的加载,就可以解决

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants