我不能评论你的答案,但我想添加一些东西。
我理解你的困境,为什么您链接到该解决方案是不是适合自己情况的完整解决方案(因为你不能滚动到视图的底部)。我有一个类似的情况与一个大的可滚动EditText框。当软键盘弹出时,我不喜欢我的背景被挤压。
我已经试过您的解决方案,而在它出现的工作乍看之下,也有一些情况下可能不是很理想:
- 如果你让你的应用程序中有一个风景模式,背景将不调整/拉伸
- 如果您运行具有较大的屏幕或DPI设备上的应用程序,你的背景可能无法填满屏幕
基本上看来,当你设置scaleType
到matrix
你牛逼elling Android以1:1的比例绘制背景,而不是按比例绘制。因此,当您使用您的解决方案打开软键盘发生的事情是,你scrollView
和imageView
都面临调整大小如常,但src时,您设定的图像保持1:1这样继续显示相同的区域。
因此,例如,如果您的背景图像设置为特定尺寸(例如480 x 800),并且它完美地填充了Nexus One,那么当您旋转到风景时,您将沿着右侧有一个黑色区域。
这是没有实际意义的,当然,如果你的背景是简单重复的图案,在这种情况下,你可以把它非常大,希望弥补各种屏幕(甚至片)。
或者你也可以提供针对不同屏幕尺寸/密度/取向不同的背景,但是这仍然不占比例。
妄图试图解决这个问题,我偶然发现了一个名为android:isScrollContainer
的View
属性。该属性告诉某些视图在显示软键盘时是否允许它们调整大小。链接解决方案中的某人也提到了这一点。我试图在包含我的背景的ViewGroup
上设置这个(为false),但是任何滚动的子元素似乎都会覆盖它,导致再次发生压扁。
截至目前,我不认为我们的情况有完整的解决方案。在某些情况下,你的工作肯定有效,我感谢你的努力。希望谷歌未来能够提供解决方案,但我不认为他们会认为这是一个问题/优先事项。
我们不能把矩阵作为一个规模型,它影响了图像缩放特性,而在我来说,我需要fitCenter。 – 2017-06-22 12:01:35