【问题标题】:Change button's background color via selector and manual performClick()通过选择器和手动 performClick() 更改按钮的背景颜色
【发布时间】:2013-06-07 04:07:20
【问题描述】:

我有一个具有以下背景的按钮。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true"
   android:drawable="@drawable/easy_button_pressed" /> <!-- pressed -->
  <item android:state_focused="true"
   android:drawable="@drawable/easy_button_pressed" /> <!-- focused -->
  <item android:drawable="@drawable/easy_button_default" /> <!-- default -->
</selector>

如果我手动按下按钮,效果会很好。但我有时也需要手动调用button.performClick(); 当我这样做时,按钮不会改变颜色。谁能帮帮我。

【问题讨论】:

  • 我们可以看看你的代码 Alex 吗?更重要的是,您在哪里/何时调用 performClick?

标签: android android-layout android-button android-styles


【解决方案1】:

调用performClick()后,调用view.setPressed(true);,然后在几毫秒后将其设置为false,如下所示:

handler.postDelayed(new Runnable() {

    @Override
    public void run() {
        view.setPressed(false);
    }
}, 100);

【讨论】:

  • view.setPressed(true); 是我一直在寻找的。谢谢!
猜你喜欢
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2014-02-10
  • 2011-10-03
  • 2015-06-04
  • 1970-01-01
相关资源
最近更新 更多