close
常常會遇到要利用很多個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); } }); } }
結果會像下面這個樣子
文章標籤
全站熱搜