安卓上的复制/粘贴工具栏

4
我需要您在Android开发中帮我解决以下问题。由于某些原因,在扩展ActioBarActivity时,当我按下EditText组件时,剪切/复制/粘贴按钮正确显示(参见图像1)。
不幸的是,如果我扩展Activity,则工具栏不会正确显示。您可以在图2中看到按钮存在,但它们是白色的,用户无法看到它们。我已经调查了,但我不知道如何解决这个问题。
如果您需要,我可以分享代码,但我认为这很容易复现。
提前致谢。
保罗
2个回答

8
尝试在应用程序主题的定义中使用以下内容:
<item name="actionModeBackground">@color/actionBarBgColor</item>

3
创建一个自定义样式并指定背景颜色,然后在你的主题xml资源文件中,在“style”元素之间,将“android:actionBarStyle”设置为你刚刚创建的自定义样式,它会为你更改操作栏的颜色。
更新:我刚刚使用了默认文件夹作为我的主题资源(注意:文件名是任意的),如果您想为v-11(API级别11)及以上创建一个主题资源,请创建一个新的主题资源文件(同样,文件名是任意的),并在文件名后加上“-v11”。
这是默认的主题资源文件,因为它继承了属性和属性从Theme.AppCompat.Light.DarkActionBar,正如你所看到的,在这个文件中,你不能使用“android”命名空间。如果你有另一个主题资源文件,就像上面的图片一样,Android Studio会自动创建stylex.xml(v21),这是针对Android版本21及以上设备的。你必须为每个属性添加“android”命名空间,例如actionBarStyle将变成android:actionBarStyle,但你应该知道ActionBar已经被弃用自版本21,API级别5。
此外,displayOptions属性告诉Android如何显示标题区域。这些可用值包括:
1. none 2. useLogo 3. showHome 4. homeAsUp 5. showTitle 6. showCustom 7. disableHome 注意:background属性只接受引用值,不接受硬编码值。
这是结果: Final result

1
嘿,抱歉之前回答有点模糊,可以看一下我上面修改过的版本。 - Biu
这个回答非常好,真的帮助我了解了Android的主题的不同之处。问题在于基本上我没有一个操作栏(我正在扩展活动),并且我需要在长按EditText框并选择其中的文本时出现的Cut/Copy/Paste工具栏上应用样式。你有任何关于此的想法吗? - TerminatorX
1
我需要在长按EditText框并选择其中的文本时,应用剪切/复制/粘贴工具栏上的样式。您在此处要实现的称为“上下文菜单”,它类似于操作栏,但仅出现在您长按项目的上下文中,并触发此“上下文菜单”,它暂时接管操作栏,但完成后会消失。因此,如果您不想给操作栏设置样式,则唯一的选择是创建不同的图标,以便它们可以正确地显示在像上面提到的浅色背景上。 - Biu
我会尝试的。谢谢! - TerminatorX
这实际上取决于 Android 版本。 - Biu
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接