按钮选择器pressed_state不起作用

时间:2018-04-21 21:19:35

标签: android

我试图为按下的按钮设置不同的风格,但它不起作用。 (默认样式有效。)这是完整的代码。请问你能看到这个问题。

活动

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

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="???"
        android:background="@drawable/button_generic"/>
</RelativeLayout>

绘制对象

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"> <!--Android ignores this :-/ -->
        <shape>
            <solid android:color="#ff0000" />
            <stroke android:width="2dp" android:color="#adadad" />
        </shape>
    </item>
    <item>
        <shape>
            <solid android:color="#e8e8e8" />
            <stroke android:width="1px" android:color="#adadad" />
        </shape>
    </item>
</selector>

活动

public class TActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.t);
 }

}

2 个答案:

答案 0 :(得分:1)

*我的理解,你想在点击按钮时进行一些更改,好吗?在用户点击按钮的代码中,它会将背景颜色更改为红色。

如果有疑问,请在您的代码中遇到*

问题
android:text="???" 

将其转换为

android:text="sometext"

它将100%工作

Before click

After click

我把两张图片用于你的代码,我只是改变了“???”到“AAA”。

答案 1 :(得分:1)

尝试:

  • 将这两个属性添加到xml中的Button

android:clickable="true" android:focusable="true"

  • 或以View.OnClickListener
  • 编程方式将Button添加到Activity overflow-wrap: normal;