当用户从 textView 元素中选择一些文本时,我正在尝试删除诸如"复制"和"选择"的默认项目. 我已经使用此代码覆盖了默认操作,但是充气新菜单资源并未删除默认项目. textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.setTitle("Test"); mode.getMenuInflater().inflate(R.menu.new_menu_selection, menu); return true; } @Override public boolean onPrepareActionMode(ActionMode mode,
以下是关于 android-actionmode 的编程技术问答
我正在制作阅读应用程序,并且它具有全屏活动. 当用户选择文本的部分时,出现A contextual action bar的选项.这是默认行为.但是该动作栏会阻止其下面的文本,因此用户无法选择它. 我想显示下面的弹出窗口. 我尝试从onCreateActionMode返回false,但是当我这样做时,我也无法选择文本. 我想知道是否有一种引人注目的方法来实现此目的,因为许多阅读应用程序都使用此设计. 解决方案 我不知道播放书籍是如何实现这一目标的,但是您可以创建 PopupWindow 并根据所选文本使用 Layout.getSelectionPath 和一点点数学.基本上,我们要: 计算选定文本的边界 计算PopupWindow 的边界和初始位置 计算两个 之间的差异 抵消PopupWindow在选定的文本上方或下方水平/垂直垂直中心 计算选择边界 用高光的表示填充指定的路径 在指定的偏移之间.这通常是矩形或 潜在的不连续矩形.如果开始
我已经在WebView中为自定义文本选择功能实现了ActionMode.Callback.我遇到的问题是选择和动作模式状态不匹配. 当我长时间开始时,一切都很好. 当我与其中一个按钮或WebView(不包括实际选择)交互时,应销毁ActionMode,并且选择应消失. 在Android 4.4,Kitkat,这正是发生的. 但是,这不是4.1.1-4.3中发生的事情,果冻豆.当我单击一个按钮时,选择不会删除. 当我在选择外面点击时,情况恰恰相反.选择了选择,但是上下文动作栏仍保留在屏幕上. 这是我的CustomWebView 的代码 public class CustomWebView extends WebView { private ActionMode.Callback mActionModeCallback; @Override public ActionMode startActionMode(Callback
我正在Android Studio中创建一个Android应用程序.当我打开布局编辑器时,我在布局顶部看到了灰色的"弹出窗口",它说它 无法解析资源 @style/widget.holo.light.actionmode.inverse. 当我将"渲染版本"更改为 api 15 ( android 4.0.3 )时,这会发生这种情况. 它在一分钟前起作用,但是当我切换回布局时,我刚刚得到了这个错误. 编辑:我使用AppCompat库. 主题是这样定义的 当我运行它时,该应用程序正常工作,但是编辑器中的应用程序不正确(至少是给我错误的). 如果有人可以帮助我,我会很高兴.谢谢! 解决方案 将Android Studio更新为1.1.0并打开一个旧项目而无需更改任何内容时,我遇到了这个问题.
我想在WebView中保留文本选择,同时防止显示Actiomode的任何上下文菜单.新的浮动一个或旧的动作栏都不只是选择,当然还有选择行为. 挂接到StartActionMode中的ActionModeCallback,使我可以清除"回调" otreateActionMode中的所有项目. 这在Android 6上正常工作,因为完全没有显示空的浮动菜单,并且保留了ActionMode文本选择行为. 不幸的是,在Android上 是否有一种清洁的方法来获取此问题?我正在一个反应式应用程序中工作,但是使用自定义的扩展WebView,我还可以访问MainActivity代码. 解决方案 确实很简单:在StartActionMode中返回一个新的空操作模式,而不是返回null,Null被解释为取消动作模式,并且需要它. 您需要覆盖StartActionMode的旧和新API 23签名: @Override public ActionMode sta
我正在阅读材料设计指南中的"选择"部分(这是指南中的一个示例: https://storage.googleapis.com/material- design/prublish/propertry/材料/assets/0bwp7jtsjaw36rgf3eufsrkdqu1u/tatters_selection_selection_item_controllling_desktop_click.webm 我没有找到有关如何做到这一点的任何解释. 我什至不知道他们是使用动作模式还是其他东西... 有人可以给我一个良好的指导吗? 编辑: Minsdk 21 编辑2: 查看状态栏,该状态栏也会自我变化... 谢谢 弗朗索瓦 解决方案 好的,最后我找到了一个解决方案. 这不是一个很好的人...但是我没有其他想法可以使用其他东西,因此,如果您还有其他一些提示可以共享...不客气! 这是下面的最终结果和代码: github上的示例项目 目标
MainActivity.java 我已经在此类及以下实现了MultiChoiceModeListener是代码: on listView: listView.setMultiChoiceModeListener(MainActivity.this); listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE_MODAL); @Override public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) { switch (arg1.getItemId()) { case R.id.save: // Close CAB arg0.finish(); return true; case R.id.saveto:
背景 可以更改ActionBar的背景,甚至可以在两种颜色之间设置动画,如下: public static void animateBetweenColors(final ActionBar actionBar, final int colorFrom, final int colorTo, final int durationInMs) { final ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo); colorAnimation.addUpdateListener(new AnimatorUpdateListener() { ColorDrawable colorDrawable = new ColorDrawable(colorFrom); @Override
我的问题与此处描述相同 - 设置自定义在ActionBar ShareActionProvider 上分享图标 但我不使用actionBarshllock/p> @drawable/icon 这在我的nexus 5上工作很好,但许多其他设备上失败了 所以我的问题是,如何在不使用actionBarsherlock 的情况下更改该图标 解决方案 您可以子类ShareActionProvider,仅覆盖构造函数和CreateActionView(). 从这里,您可以从超级获取视图,将其投入ActivityChoSerview,以便您可以致电 setexpandactviactiveOverflowButTondraWable(draw
我在嵌套片段中实现了一个上下文动作模式条.该片段是视图寻呼机的一部分,视图寻呼机也是导航抽屉的片段和一部分. 我的问题:如果片段不再聚焦,我想关闭上下文动作模式栏.因此,如果我通过视图寻呼机滑动,动作模式栏应该关闭.但是如果我使用嵌套片段的onPause()方法,则不会直接调用该方法.通常它等待直到我向前两三次刷两次......这里有一些图片: 在第二张图片中,您可以看到动作模式栏仍然存在.所以我的问题是: 在哪种方法应该调用我的actionModeBar.finish()方法,如果我离开片段,请直接关闭动作模式栏? 也许片段的代码可帮助您: public class EditorFragment extends Fragment { private static final String KEY_POSITION="position"; ListView listView; private boolean isMultipleList = fals
我在我的应用中添加了Google Maps活动 但是我一直遇到这个错误 没有发现与给定名称匹配的资源:attr'android:actionmodesharedrawable'. 我找到了此链接,并试图应用相同的解决方案,但它不起作用,但我仍然遇到相同的错误 appcompat -v7:21.0.0':找不到与给定名称相匹配的资源:attr'android:actionmodesharedrawable' 有人可以帮忙吗? 解决方案 我找到了这个 的答案 已经安装了AppCompat库 但是该应用程序正在根据Android 19进行编译,这是此问题 要解决这个问题,我在Android 21 下编译了
在下面链接的问题中的过程似乎没有使用标准或支持ActionMode为ME工作. action_up从未显示为参数,尽管action_down仍然是不可取的,但仍然取消了ActionMode. 防止按返回按钮取消操作模式 任何人都可以建议在按下后键时如何防止动作模式关闭? 我的代码 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; public
我想创建一个自定义菜单进行文本选择.我知道可以使用setCustomSelectionActionModeCallback编辑动作栏的行为,但在我的情况下,我根本不希望将该动作栏显示出来,我希望我自己已经实现的浮动自定义菜单. 只有在选择TextView中的文本后无法显示操作栏菜单. 我需要的行为不是标准的剪切/复制/粘贴,我所实施的操作是为了突出显示和将突出显示的文本部分保存到数据库. 我已经做了一些修补,我能做的最好的是一个凌乱的反思想法,我在oncreateActionMode中返回False,并通过反射来参考文本选择.它的工作已经一半,它也是因为这种情况下的任何形式的反射都是非常糟糕的做法. 我的希望是最后一个支持库将在6.0中包含浮动文本菜单,而我可以在该菜单中实现自己的自定义视图,但这是一厢情愿的思考. 如果有人有任何可能使用的想法或图书馆,那么我都是耳朵. 解决方案 您已经注意到,使用反射是一种方式之一.我很确定这是唯一一个.如果您对使用该
我知道有关造型的上下文动作栏(ActionMode)行动栏的一块有关有几个问题,但它们似乎并不完全解决我之后的内容. 我正在使用带有灯主题和黑暗动作栏的工具栏.工具栏看起来像我想要它,但动作模式看起来像常规黑暗主题.我的风格需要改变什么,以获得黑暗主题的动作模式(不仅仅是行动栏)?似乎我应该通过点击进入Theme.AppCompat来快速执行此操作,因为它显示了我想要它的方式,但我不希望其余的应用程序是黑暗的. 我只是关注API 14+,我正在使用支持工具栏代替动作栏. 这是我的基础样式 @color/colorPrimary @color/colorPrimaryDark
我已经为我的应用程序实现了自己的ViewGroup.使用ActionBar在我的视图中的各种原因不是一个选项,所以我在顶部和底部的一个有自己的"ActionBars".图像1说明了我当前的布局. ,您可以看到布局中有两个Edittext,一切都看起来正常. 但是,当用户在任何EditText中选择某些文本时,显示上下文ActionMode栏.图2说明了这一点. 当发生这种情况时,ActionMode栏"按"我的整个布局才能获得其空间.在平板电脑和其他大型屏幕设备中,这是可以的,但在较小的设备中,特别是软键盘可见,剩余高度太小(在横向方向上不可用). 我想要做的是ActionMode栏,以覆盖我的布局,而不是按照图像3所示推开它. 是可能的吗? 解决方案 只会为您的样式添加true. 其他解决方案 使用windowActionModeOverla
更新 最新的Gmail应用程序中存在.我仍然不明白为什么谷歌会让这种令人不快的UI变化.每当我看到它 时,我的痴迷会疯狂 问题 我有这个奇怪的问题与appcompat-v7 23.问题我要描述不会发生22系列 您可以获取再现此颁发表单的源代码 https://github.com/devserv/t/ 一旦构建,可以点击并保存列表中的项目以激活ActionMode 问题: 在ActionMode时,AppCompat将状态栏转动到黑色.如果我不使用以下遵循 ,则不会发生这种情况 @android:color/transparent true 在我的V21风格中,但我必须使用它,因为我希望我的导航抽屉看起来在状态栏后面. 当ActionMo
除了传统的android.app.ActionBar之外,我尝试使用new android.support.v7.widget.Toolbar.我能够用: 显示它 toolbar.startActionMode(callback); 问题是在ActionBar上显示ActionMode,而不是在Toolbar上显示.有没有办法改变这个? 我试图在我的主题中设置以下内容,但它似乎没有改变任何东西: true 解决方案 由于您使用的是Toolbar,我也假设您正在使用 AppCompatActivity并已更换内置的ActionBar 您的自定义Toolbar使用setSupportActionBar(toolbar); 首先确保您正在导入正确的命名空间: import androidx.appcompat.view.ActionMode; // Or impor
我正在创建一个Android应用程序,其中支持级别API为7,所以我正在使用Sherlock actionBar.我正在使用动作模式. 问题是我想改变动作模式的背景.所以我试过 @color/something @color/something @color/something 这些样式解决方案可用但其中没有任何作用. 解决方案 如果您想要更改actionBar的颜色,请执行以下操作: ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable("COLOR")); 请参阅以下链接更多信息