问题:
应用主题从机器人继承: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);
请看看之前和应用主题后,显示的屏幕截图。
我没有找到针对这种情况的解决方案,它似乎AlertDialog的操作栏主题只能与本身相同。但是一种解决方法是使用另一个DialogFragment来显示AlertDailog的内容,这样我们可以有一个Light.DarkActionBar动作模式没有问题 – henry74918