请原谅我的英语水平低:(
我正在开发Android应用。以下是我支持的SDK:
Min SDK版本:13 目标SDK版本:16
我还在Manifest.xml中声明了supports-screens android:largestWidthLimitDp="320"
。
我实现了拖放功能。如果我在320密度屏幕设备(例如Nexus S)中测试应用程序,一切正常,但如果我在最高320密度的屏幕设备(例如Note 3或Nexus 5)中进行测试,则拖放失败
在这种情况下,我可以拖动视图但是当我将视图放在目标视图上时,会有一个位移。我的意思是,我能够做到" drop"只有当我把第一个视图放在目标视图的边界之外。
如果删除supports-screens android:largestWidthLimitDp="320"
属性,则所有工作都没有问题。但是,正如您可能猜到的那样,在我的应用中这是非常必要的。
您可以查看该项目。 Download here
请检查这些照片,以便更好地理解我的意思:
支持屏幕android:largestWidthLimitDp =" 320"关(一切正常) (IMAGE LINK)
支持屏幕android:largestWidthLimitDp =" 320"开(你可以看到问题:灰色视图不是黄色视图) (IMAGE LINK drive.google.com/file/d/0B5mkXsoIIRVEb04zSmZmZ05SODQ/edit?usp=sharing)
支持屏幕android:largestWidthLimitDp =" 320" ON(ACTION_DRAG_ENTERED仅在"虚拟"框[蓝色视图边界之外]处于活动状态 (IMAGE LINK drive.google.com/file/d/0B5mkXsoIIRVEa3RGM1hPNjJCaTg/edit?usp=sharing)
我担心这是Android操作系统的错误。假设这个属性无法推迟,你知道这个问题的解决方案吗?非常感谢你的帮助
(适用EDIT)
对帖子格式感到抱歉。我无法提交超过2个链接。
答案 0 :(得分:0)
从文档看起来像android:largestWidthLimitDp,如果值设置小于设备的最小宽度,则应用程序进入兼容模式(nexus 5具有"最小屏幕宽度" of 360dp哪个更大)。所以应用程序正在进入这种兼容模式。
同样来自文档:"目前,兼容模式仅模拟宽度为320dp的手机屏幕。 这意味着您的应用认为布局宽度为320dp。由于N5是360,我认为计算存在一些问题。
从代码中我看不出任何问题,所以这可能是其他地方的问题。您是否尝试过使用"绘制视图边界"开发人员设置中的选项?
但是我不鼓励使用支持屏幕并创建响应式设计,体验会更好。