问题:
应用主题继承自android:Theme.Light,并且没有专门的 AlertDialog 主题,因此 ActionMode 项在某种程度上是不可见的。
解决方案:
1.为AlertDialog创建专用主题;
<style name="AppTheme" parent="android:Theme.Light">
</style>
<style name="AlertDialogTheme" parent="AppTheme">
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textColor">@android:color/holo_blue_light</item>
</style>
注意:创造魔法的最重要的线是<item name="android:textColor">@android:color/holo_blue_light</item>
2. 构建 AlertDialog 时使用专用主题。
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
请查看应用主题前后显示的屏幕截图。