设计要求是,有一个listview,在listview的items中,有一个按钮,按下按钮,然后,总是在按钮上方显示一个弹出窗口,而不是底部。
在 Android 中,使用“showAsDropDown”,弹出窗口默认显示在按钮底部(视图或锚点)。但是如果底部没有显示,弹出窗口将显示在按钮(视图或锚点)的顶部。
onTop = (displayFrame.bottom - mScreenLocation[1] - anchor.getHeight() - yoff) <(mScreenLocation[1] - yoff - displayFrame.top);
所以,我根据这一点,通过“setSelectionFromTop”来移动按钮的item,让判断没有足够的显示在按钮的底部来达到效果。</p>
在android 4.0.3中,是ok的,item移动了,弹窗显示新的位置和上面,但是,在android 2.2中,弹窗仍然显示按下的位置,而不是移动后的位置。</p>
boolean onTop = (displayFrame.bottom - mScreenLocation[1] - v.getHeight() - 0) < (mScreenLocation[1] - 0 - displayFrame.top);
if(!onTop){
mListMain.setSelectionFromTop(mListMain.getPositionForView(v),(displayFrame.bottom - v.getHeight() + displayFrame.top) / 2 );
}
可以帮帮我,怎么解决?!..T_T