【问题标题】:Two-state action button in Jelly Bean Notifications果冻豆通知中的两态操作按钮
【发布时间】:2013-08-08 17:44:44
【问题描述】:

我正在尝试在我的通知中实现媒体播放器控件。我需要播放/暂停按钮在“播放”可绘制对象和“暂停”可绘制对象之间动态切换(基本上是用户的触摸)。例如,用户一触摸“暂停”按钮,就需要变回“播放”。用户触摸“播放”按钮,就需要变回“暂停”。

我假设最好的方法是创建一个 StateListDrawable XML 并将其设置为操作按钮的可绘制对象。不幸的是,我似乎无法让 StateListDrawable 工作。这是我的可绘制 XML 文件:

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android" >  
    <item android:state_first="true"  
          android:drawable="@drawable/pause_track_notification" />  
    <item android:state_last="true"
          android:drawable="@drawable/play_track_notification" />  
</selector> 

我是否遗漏了 XML 中的任何重要内容?现在,我只是得到一个应该显示播放/暂停按钮的空白空间。我怎样才能让它工作?谢谢!

【问题讨论】:

标签: android notifications drawable statelistdrawable


【解决方案1】:

将此用于切换按钮和以下选择器:

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android" >  
    <item android:state_checked="true" 
          android:drawable="@drawable/pause_track_notification" />  
    <item android:state_checked="false"
          android:drawable="@drawable/play_track_notification" />
    <item android:drawable="@drawable/play_track_notification" /> <!-- the default -->
</selector>

【讨论】:

  • 您好,感谢您的快速回复!使用您的代码让我再次看到默认的可绘制对象。但是,当我点击它时它不会改变图标。我还需要做些什么才能使其正常工作吗?请记住,我将此可绘制对象用于通知中的操作按钮。这可能是您的代码不起作用的原因吗?谢谢!
  • 您可能想添加android:state_focused="true/false",但切换按钮在按下时会起作用,我不知道您在说点击时是什么意思?
  • 我试过android:state_focused,但也没有用。 “点击”是指当用户按下按钮时。很抱歉造成混淆,我们现在都在同一页面上。您的代码是否适用于通知中的操作按钮?还是只对 ToggleButton UI 元素显式有效?
  • 它不会在那里工作,但这里给你一个提示:将该按钮设置为图像按钮并在公共 void someFunction(){} 中放入 xml 属性 android:onClick="someFunction",您可以检查当前可视化图像并更改它。就是这么简单。
  • 啊,我明白你想说什么了。虽然我不明白当NotificationBuilder 只允许我为操作按钮设置可绘制对象时如何使用android:onClick 属性?以下是我设置操作按钮的方式:builder.addAction(R.drawable.play_pause_notification_light, "", playPauseTrackPendingIntent);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 2012-09-08
  • 2012-07-20
  • 1970-01-01
相关资源
最近更新 更多