常常會遇到要利用很多個Button給使用者點擊
當點了其中一個Button後其他的就要變灰階的狀態
今天發現可以利用selector來更快地執行這件事情
Step 1:
新增Button的按鈕顏色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--當被選擇時-->
<item android:state_selected="true">
<!--rectangle 長方形 可以畫出直角形,圓角形,弧形等-->
<shape android:shape="rectangle">
<corners android:radius="30dip" />
<solid android:color="#76ba8a" />
</shape>
</item>
<!--沒被選擇時-->
<item>
<shape android:shape="rectangle">
<corners android:radius="30dip" />
<solid android:color="#f3f3f3" />
</shape>
</item>
</selector>
Step 2:
新增Button的文字的顏色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--當被選擇時-->
<item android:state_selected="true"
android:color="#ffffff" />
<!--沒被選擇時-->
<item android:color="#76ba8a" />
</selector>
Step 3:
package com.example.here.myapplication;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.android.volley.toolbox.Volley;
public class MainActivity extends AppCompatActivity {
private Button btn1,btn2,btn3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = findViewById(R.id.button);
//預設btn是被選擇的
btn1.setSelected(true);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn1.setSelected(true);
btn2.setSelected(false);
btn3.setSelected(false);
}
});
btn2 = findViewById(R.id.button2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn1.setSelected(false);
btn2.setSelected(true);
btn3.setSelected(false);
}
});
btn3 = findViewById(R.id.button3);
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn1.setSelected(false);
btn2.setSelected(false);
btn3.setSelected(true);
}
});
}
}
結果會像下面這個樣子
文章標籤
全站熱搜
