我有一个图库,它使用户可以浏览图库,选择图像作为他们的选择,然后继续浏览图库而无需更改选择。这可以通过使用onItemSelected来查看他们选择的图像(即单击)是否已经被选择(通过画廊的运动)来进行。所以:
用户在图库中前后移动。
用户决定自己喜欢的图像,然后将图库放在其中心。
用户单击图像,它被“选中”,并带有绿色边框。
用户可以继续在图库中前后移动,而不会自动“选择”当前居中的图像。
这可以。但是,我现在尝试在选择图像时允许方向更改,并且我发现在执行所有onConfigChanged代码之后,在图库上调用了onItemSelected。
因此,onConfigChange我设置了参数(即,方向更改之前Gallery在哪个索引上),然后调用了initialUI方法。这样可以成功执行并设置所需的所有内容,包括将Gallery定位在方向更改之前的相同索引处。但是,然后在居中图像上调用onItemSelected。这导致居中图像被选择为他们的选择(绿色边框等),而无需用户单击。
我尝试使用布尔标志“ configIsChanging”来仅在configIsChanging为false时执行onItemSelected代码。不幸的是,这似乎不起作用,因为onItemSelected在onConfigChange完成之后被调用,并且此时标志已重置为false。
@Override
public void onConfigurationChanged(Configuration newConfig) {
configChanging = true;
tempConfigDisplayedIndex = mGallery.getSelectedItemPosition();
super.onConfigurationChanged(newConfig);
setContentView(R.layout.take_questionnaire);
initialiseUI();
configChanging = false;
}
有没有人对流氓onItemSelected事件有任何经验?有任何想法吗?如果需要,我可以发布更多代码。非常感谢您的帮助。
最佳答案
您是否尝试过将android:configChanges =“ orientation”放入清单中?
关于android - 方向更改后图库调用onItemSelected,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10172936/