我遇到键盘问题时,不会在升高/降低时调整我的地图尺寸。
我有一个布局,其中有一个EditText来收集一个电子邮件地址,然后是一个framelayout,它下面有一个MapFragment。我使用的是Maps API v2
我正在使用LocationServices.FusedLocationApi.getLastLocation
并且在MapFragment的onCreate中我调用了下面的内容,这样键盘会在升高/降低时缩小地图。
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
我意识到我需要获取当前位置以防最后一个已知位置旧或不可用,因此我设置了map.setMyLocationEnabled(true)
并设置了它的监听器。
奇怪的是,一旦我启用它,当我抬起键盘时,地图不再缩小,而是覆盖它。我尝试将此设置为true,获取位置,并禁用它,它仍然无法正确收缩。我启用myLocation后,我也尝试设置窗口参数。
更新 - 通过进一步测试,我还发现如果我将设备旋转为横向,然后再回到纵向,键盘将正确调整地图。
为什么启用当前位置会覆盖之前设置的窗口设置?在我设置map.setMyLocationEnabled(true)
之后还有其他方法可以尝试强制它吗?我并不想将它应用于整个活动,因为这只是众多片段中的一个。