有没有办法获取cardScrollView的当前菜单位置?
当识别Swipe_Left和Swipe_Right手势时,我会调用invalidateOptionsMenu()
。
我尝试使用以下代码
@Override
public boolean onPreparePanel(int featureId,View view, Menu menu)
{
menu.clear();
mPosition = mCardScroller.getSelectedItemPosition();
Log.i("swiped", Integer.toString(mPosition));
switch(mPosition)
{
case 0:
getMenuInflater().inflate(R.menu.main_menu_0, menu);
break;
case 1:
getMenuInflater().inflate(R.menu.main_menu_1, menu);
break;
case 2:
getMenuInflater().inflate(R.menu.main_menu_2, menu);
break;
}
return super.onPreparePanel(featureId, view, menu);
}
然而mCardScroller.getSelectedItemPosition();
获取在滑动之前处于活动状态的位置。我需要一种方法来在刷卡后获得此位置,并且仍然确保菜单再次充气,以便显示相应卡的菜单。
我尝试使用-1和+1也是唯一的问题,当我进行硬刷卡时,它会跳过几张卡,这个数字将不再正确。
有没有人知道这个问题的解决方案?
答案 0 :(得分:0)
您可以使用CardScrollView的onItemSelectedListener
来实现onItemSelected
回调方法。滚动列表完成后调用此方法。有关详细信息,请参阅official docs。