[英]Android button doesn't change when pressed
我單擊按鈕時沒有問題,它不會更改背景圖像
這是btn_states.xml
<item android:drawable="@drawable/btn_normal"/>
<item android:drawable="@drawable/btn_active" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_active" android:state_focused="true"/>
和activity_main.xml
<Button
android:id="@+id/button1"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/btn_states"
android:text="@string/app_name"
android:textColor="#FFFFFF" />
還有MainActivity.class
final Button button1 = (Button) findViewById(R.id.button1);
button1.setBackgroundResource(R.drawable.btn_states);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
AboutActivity.class);
startActivity(intent);
}
});
<selector>
元素會膨脹為StateListDrawable
,它通過線性搜索一組狀態規范來找到給定狀態集的最合適的可繪制對象。 它將選擇與狀態集匹配的第一個<item>
。
在您的示例中,第一個<item>
沒有指定狀態(包括( true
)或排除( false
)),因此它匹配所有狀態集。 結果,搜索將提前結束,並且第一個<item>
的drawable將用於所有可能的狀態集。
相反,您可以這樣訂購:
<selector>
<item android:state_pressed="true"
android:drawable="@drawable/btn_active" />
<item android:state_focused="true"
android:drawable="@drawable/btn_active" />
<item android:drawable="@drawable/btn_normal" />
</selector>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.