透明的Android上下文操作栏

时间:2014-07-22 08:49:06

标签: android android-actionbar android-webview textview android-contextmenu

在Andriod WebView上长时间点击TextEdit时,将显示一个上下文操作栏(CAB)。

我指定了以下样式,以避免布局中断,但菜单不会变得透明并隐藏TextEdit。我应该用这个菜单写什么才能让它变得透明?

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="android:Theme.Holo">
        <item name="android:actionBarStyle">@style/AppStyle</item>
        <item name="android:windowActionModeOverlay">true</item>
    </style>
    <style name="AppStyle" parent="android:Widget.Holo.ActionBar">
        <item name="android:colorBackground">#00000000</item>
    </style>
</resources>

Hide textedit

1 个答案:

答案 0 :(得分:1)

为您的颜色创建资源并从那里引用它们:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <color name="transparentBlack">#00000000</color>

</resources>

将AppStyle更改为:

<style name="AppStyle" parent="android:Widget.Holo.ActionBar">

    <item name="android:background">@color/transparentBlack</item>

</style>

主要区别在于背景与colorBackground,我不确定是否存在功能差异,但我知道当我比较我的工作透明动作栏样式和你的动作栏样式时,这几乎是唯一的差。

您可以尝试仅将android:colorBackground更改为android:background并查看是否单独使用,但我发现最好直接使用引用而不是硬编码颜色。如果您只想更改一个,请分别尝试,看看它们是否能解决您的问题。

2014年12月2日的新建议 -

为什么不隐藏操作栏(mSpecialActionBar.hide();),然后为您的Activity实现View.OnLongClickListener。然后,您可以再次显示操作栏(mSpecialActionBar.show();)。或类似的东西。

@Override
public void onLongClick(View v) {

    if (v.getClass() == TextEdit) {

       mSpecialActionBar.show();

    }
} // end-of-method onLongClick  

以下是我认为有用的资源:http://java.dzone.com/articles/contextual-action-bar-cab