如何在Android中的操作栏下的视图中获取触摸事件

时间:2014-06-04 13:29:19

标签: android android-actionbar

我有一个带标题和webview的活动,以及操作栏(拆分)。

我需要在应用程序底部显示菜单,因此我使用拆分操作栏。因此,操作栏必须是活动/可见的。操作栏完全透明,因为我需要显示一个非常自定义的标题,我不能使用本机操作栏。

然后,当应用收到推送通知时,我会在标题中显示警告。我需要在警报中获取触摸事件,因为有与警报相关的操作。 但我无法获得点击事件,因为操作栏已超出提醒,但它是透明的。

代码

    Manifest:
    <activity 
        android:name="WebActivity"
        android:screenOrientation="portrait"
        android:uiOptions="splitActionBarWhenNarrow">
    </activity>

    Style:
    <style name="MyActionBar"
       parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
       <item name="android:background">@color/transparent</item>

    </style>

问题

  • 有没有办法只显示分割操作栏但不显示主操作栏(顶部)?
  • 有没有办法将click事件传播到操作栏下的ui元素?
  • 有没有办法在整个操作栏上显示点击事件?

1 个答案:

答案 0 :(得分:0)

解决问题的选项:

弹出。 使用@Abhi建议的弹出窗口似乎没问题,但弹出窗口处于活动状态时无法显示菜单选项,因此无法使用。

活动类型对话框。 使用类似对话框的活动可以显示警报似乎是弹出窗口,但在活动处于活动状态时无法显示菜单选项。尽管如此,使用以下标志window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,                 WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); 用户可以与父活动进行交互,因此如果您不使用本机菜单就可以。

活动对话框配置示例:

  <activity android:name="NotificationAlertDialog"
      android:label="titulo"
      android:theme="@android:style/Theme.Dialog"/>

<强>解决方案 最后,我使用了最简单的解决方案。我只删除分割操作栏并手动显示弹出菜单。通过这种方式,可以单击警报视图,因为它上面没有操作栏。