如何观察recyclelerview actionmode点击活动

时间:2018-03-28 09:25:39

标签: android mvvm android-recyclerview delegates

(Rookie Android dev)

我在recyclelerview中实现了actionmode回调(也可能是一个糟糕的选择,请详细说明是否有一个好的教程/示例),这样当用户点击listitem时,它会被选中容易。

我想要做的是观察动作模式按钮按钮,并显示浮动动作按钮(或菜单)的列表。我希望他们在显示和隐藏时获得动画,并在推送时触发各种内容(在recyclerview项目上)。

我有点知道如何以非常肮脏的方式执行此操作:将List<FloatingActionButton>和动画传递给活动中的视图。但我想知道如何实现这一目标的最佳实践。此外,一个可观察的视图(由视图模型或活动观察)对我来说有点愚蠢的选择,而且我对代表没有经验。

我的actioncallback看起来像这样:

private ActionMode.Callback actionModeCallbacks = new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {

        mode.getMenuInflater().inflate(R.menu.menu_contextual_items, menu);

        isActionModePresent = true;
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {


        switch (item.getItemId()) {

            case R.id.cab_action_select_all:
                selectedAppsHashSet.addAll(itemList);
                notifyDataSetChanged();
                return true;

            case R.id.cab_action_select_none:
                selectedAppsHashSet.clear();
                notifyDataSetChanged();
                return true;

            case R.id.cab_action_selecty_apply_green:
                //implement stuff here
                return true;

            case R.id.cab_action_selecty_apply_red:
                //implement stuff here
                return true;

            default:
                return false;
        }
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {

        isActionModePresent = false;
        selectedAppsHashSet.clear();
        notifyDataSetChanged();
    }
};

0 个答案:

没有答案