Android appcompat不会显示上下文操作栏中的文本选择复制操作

时间:2015-01-12 11:17:06

标签: android android-webview android-appcompat

我遇到了一个奇怪的问题。
当我使用android holo主题作为默认主题,然后在webview上选择文本时,上下文操作栏会正确显示。

<style name="MyTheme" parent="Theme.AppCompat.Light">   
</style>

enter image description here

但是当我使用app紧凑的全息主题时,选择所有和复制动作都消失了。

<style name="MyTheme" parent="android:Theme.Holo.Light">   
</style>

enter image description here

我的问题在哪里?我的应用程序支持Android设备4.0 +

1 个答案:

答案 0 :(得分:4)

因为在menu.xml文件中,您使用属性app:showAsAction="ifRoom"来表示非app commpat主题。 请将app:showAsAction="ifRoom"更改为android:showAsAction="ifRoom",然后才能正常工作

示例

对于这种风格

<style name="AppTheme" parent="android:Theme.Holo.Light">

在菜单

下方工作
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context=".MainActivity">
    <item android:id="@+id/pase"
          android:title="@string/action_settings"
          android:orderInCategory="100"
          android:icon="@drawable/abc_ic_menu_paste_mtrl_am_alpha"
       //look here is a different
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/copy"
          android:title="@string/action_settings"
          android:icon="@drawable/abc_ic_menu_copy_mtrl_am_alpha"
          android:orderInCategory="100"
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:orderInCategory="100"
          android:showAsAction="never"/>
</menu>

对于这种风格

<style name="AppTheme" parent="Theme.AppCompat.Light">

在菜单

下方工作
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context=".MainActivity">
    <item android:id="@+id/pase"
          android:title="@string/action_settings"
          android:orderInCategory="100"
          android:icon="@drawable/abc_ic_menu_paste_mtrl_am_alpha"
       //look here is a different
          app:showAsAction="ifRoom"/>
    <item android:id="@+id/copy"
          android:title="@string/action_settings"
          android:icon="@drawable/abc_ic_menu_copy_mtrl_am_alpha"
          android:orderInCategory="100"
          app:showAsAction="ifRoom"/>
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:orderInCategory="100"
          app:showAsAction="never"/>
</menu>

此外,如果您使用Theme.AppCompat.Light,则应在代码中使用ActivityActionBar。