获取当前菜单位置

时间:2015-03-13 12:18:10

标签: android google-glass google-gdk

有没有办法获取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也是唯一的问题,当我进行硬刷卡时,它会跳过几张卡,这个数字将不再正确。

有没有人知道这个问题的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用CardScrollView的onItemSelectedListener来实现onItemSelected回调方法。滚动列表完成后调用此方法。有关详细信息,请参阅official docs