标签: contextual-action-bar

如何在Honeycomb上以编程方式关闭ActionMode菜单?

在我的应用程序中有一个ListFragment,其中列表中的每个项目都包含一个复选框.每当用户点击其中一个复选框时,应用程序就会启动一个ActionMode上下文菜单.但我希望应用程序在单击另一个组件时关闭ActionMode菜单.我尝试Fragment#closeContextMenu()没有成功.

任何想法我怎样才能做到这一点?

android android-fragments android-3.0-honeycomb contextual-action-bar

36
推荐指数
1
解决办法
1万
查看次数

EditText的自定义剪切/复制操作栏,显示文本选择控制柄

我有一个应用程序,我希望能够显示一个TextView(或EditText),允许用户选择一些文本,然后按一个按钮,用该文本完成一些事情.在Honeycomb之前的Android版本上实现此功能是没有问题的,但在Honeycomb及以上默认的长按操作是显示带有复制/剪切/粘贴选项的操作栏.我可以拦截长按以显示我自己的操作栏,但后来我没有显示文本选择句柄.

一旦我开始自己的ActionMode,我如何显示文本选择句柄?

这是我用来启动ActionMode的代码,除了没有显示文本选择句柄外,它可以正常工作:

public boolean onLongClick(View v) {
    if(actionMode == null)
        actionMode = startActionMode(new QuoteCallback());
    return true;
}

class QuoteCallback implements ActionMode.Callback {

    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.quote, menu);
        return true;
    }

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

    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        switch(item.getItemId()) {

        case R.id.quote:
            Log.d(TAG, "Selected menu");
            mode.finish();
            // here is where I would grab the selected text
            return true;
        }
        return false;
    } …
Run Code Online (Sandbox Code Playgroud)

android textview android-edittext contextual-action-bar

35
推荐指数
2
解决办法
3万
查看次数

如何在ActionBarSherlock中实现多选和Contextual ActionMode?

我应该如何在AdapterView上使用ActionBarSherlock实现多选,因为它不提供MultiChoiceModeListener?

这就是它的样子

上下文行动模式

你怎么能这样做?

android actionbarsherlock android-actionbar contextual-action-bar

27
推荐指数
1
解决办法
2万
查看次数

覆盖Android中文本选择(在WebView中)的默认上下文操作栏

我想覆盖现有的默认上下文操作栏(CAB)进行文本选择.我的意思是,当我在webview上选择一些文本时,我想用自己的按钮显示我自己的CAB.我尝试使用Android文档实现CAB.OnLongClickListener不捕获Web视图中的文本选择事件.捕获文本选择的事件是什么?是否可以隐藏默认CAB并在文本选择上显示我的CAB?

childWebView.setOnLongClickListener(new OnLongClickListener() {
        @Override
     // Called when the user long-clicks on someView
        public boolean onLongClick(View view) {
            if (mActionMode != null) {
                return false;
            }

            // Start the CAB using the ActionMode.Callback defined above
            mActionMode = startActionMode(mActionModeCallback);
            view.setSelected(true);
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

android android-webview contextual-action-bar

27
推荐指数
1
解决办法
8239
查看次数

Android兼容性上下文操作栏

在尝试遵循Android设计指南时,我遇到了一个小小的困境.

我希望有一个项目列表,我可以长按几个(多选),然后对它们执行批量操作.

设计指南建议使用Contextual Action Bar,这听起来就像我想到的那样.问题是,我正在努力保持与API 7的兼容性(由于我的手机目前是2.3.3).

我正在使用ActionBarSherlock获取其他操作栏的东西,但我似乎无法弄清楚如何启动它以启动上下文操作栏,也没有弄清楚如何将任意按钮添加到ABS中的ActionBar.我看到你可以做标签,所以也许这就是答案,但是因为我试图允许多选,我不想拥有正常的模态上下文菜单.

android actionbarsherlock contextual-action-bar

25
推荐指数
2
解决办法
2万
查看次数

如何使Contextual ActionMode Bar覆盖appcompat-v7工具栏而不是导航抽屉?

我有一个应用栏和导航抽屉的活动.应用栏使用appcompat-v7库版本21. +中的新工具栏类实现,导航抽屉显示在其前面.

该活动包含一个列表视图,其中包含可以选择的项目,因此我显示了一个上下文操作栏(CAB).它是通过调用来启动的:

ActionBarActivity.startSupportActionMode(android.support.v7.view.ActionMode.Callback callback)
Run Code Online (Sandbox Code Playgroud)

默认情况下,CAB插入工具栏上方而不是覆盖它; 似乎CAB默认只覆盖真正的ActionBar.作为展现在这个答案中,CAB正确叠加时,这个主题属性设置工具栏:

<item name="windowActionModeOverlay">true</item>
Run Code Online (Sandbox Code Playgroud)

但这也使得CAB覆盖了导航抽屉,根据材料设计规格,这是不正确的.主要的Android设计文档仍然建议在打开导航抽屉时隐藏CAB并在关闭时再次显示它,这可以用来"修复"问题,但它不应该是必要的.如上所述,Material设计规范没有指定当导航抽屉打开时应该隐藏CAB,并且因为导航抽屉应该在CAB上打开,隐藏CAB实际上是一种视觉分心.

有没有办法在CAB前面显示导航抽屉,同时还能覆盖工具栏?

android contextual-action-bar navigation-drawer android-5.0-lollipop android-toolbar

25
推荐指数
1
解决办法
4362
查看次数

如何正确处理动作模式"完成"按钮?

可能重复:
如何调用ActionBar的类似ContextMenu的行为?
如何识别是否在ActionMode中单击了"完成"按钮

如何正确处理动作模式"完成"按钮?

动作模式完成按钮

我在动作模式下对一个对象执行一些操作,我想通过点击这个按钮来保存结果 - 比如"保存并退出".如何在此按钮上按键按键?

我看到的唯一方法是覆盖带有标志的onDestroyActionMode(ActionMode模式)方法,在dispatchKeyEvent(KeyEvent事件)中触发以处理它是否由"后退"按钮按下引起.

logcat的:

"完成"按下了

10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode  
Run Code Online (Sandbox Code Playgroud)

"后退"紧迫

10-03 14:32:01.771: D/DISPATCH(967):   Action: 0/n  Keykode: 4  
10-03 14:32:01.911: D/DISPATCH(967):   Action: 1/n  Keykode: 4  
10-03 14:32:01.911: D/DESTROY(967): onDestroyActionMode
Run Code Online (Sandbox Code Playgroud)

但这看起来并不是一种好的做法.有没有"好"的解决方案?

UPD:我知道如何在ActionMode.Callback中调用动作模式和处理动作项事件,但是如何按"完成"按钮按下来修改它的行为?"后退"按钮和"完成"按钮既导致ActionMode.CallbackonDestroyActionMode()呼叫.

android actionbarsherlock android-actionbar contextual-action-bar

24
推荐指数
1
解决办法
1万
查看次数

上下文动作栏样式

我在上下文操作栏(CAB)上寻找样式信息.我只需要改变文本的颜色.

上下文操作栏的结果

从上面可以看出,这是使用标准的Theme.Holo.Light.DarkActionBar主题,所以我只需要将文本颜色设置为白色!

谁能指出我正确的方向?

android android-actionbar contextual-action-bar

23
推荐指数
2
解决办法
2万
查看次数

如何调用ActionBar的类似ContextMenu的行为?

在Android 3.0的,当你选择,例如一些文本,将动作条切换到文本菜单式模式,使您能够与所选文本做的动作:复制/股/ etc和"完成"按钮将出现在左侧使用户能够离开此模式.

如何在我的应用程序中将ActionBar切换到此模式(当然是我的菜单项)?我在文档中找不到这个.

android android-3.0-honeycomb contextual-action-bar

17
推荐指数
3
解决办法
1万
查看次数

进入上下文操作模式时更改状态栏颜色

我有一个应用程序使用主题属性(colorPrimaryDark)为Android v21 +上的状态栏着色:

在此输入图像描述

这工作正常.现在,当用户长按列表项并进入上下文操作模式时,我可以使用属性actionModeBackground为CAB栏着色,所以它看起来像这样:

在此输入图像描述

因此操作栏是灰色的,这就是我想要的,但状态栏仍然使用主题深色进行着色.我不想那样,我想把它变成深灰色或黑色.

我怎样才能做到这一点?我没有看到任何可以在这里工作的主题属性.

android themes contextual-action-bar

17
推荐指数
1
解决办法
3066
查看次数