這個元件最常見是在調整音量
、調整畫面亮度
等等可以透過選取拉條來調整狀態的物件。
今天就是要來熟悉這個元件的基本建立方式。
這邊我建立一個SeekBar
元件以及一個TextView
,利用這個TextView來顯示SeekBar的拉取狀態值。
android:max=""
:這個是這個SeekBar最大的數值,這邊設定10000是想要連同小數點一起顯示android:progress=""
:也就是預設數值,一開始進入這個專案時會顯示的初始數值。例如我最大數值10000,我progress設成5000在剛進入專案模擬時就是在50%的位置。 <SeekBar
android:id="@+id/seekBar"
android:layout_width="0dp"
android:layout_height="30dp"
app:layout_constraintTop_toBottomOf="@id/Text1"
app:layout_constraintStart_toStartOf="@id/guideline1"
app:layout_constraintEnd_toEndOf="@id/guideline2"
android:max="10000"
android:progress="0"
android:secondaryProgress="0"
tools:ignore="MissingConstraints" />
<TextView
android:id="@+id/TextView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="25dp"
android:hint="Now SeekBar Number"
app:layout_constraintTop_toBottomOf="@id/seekBar"
app:layout_constraintStart_toStartOf="@id/guideline1"
app:layout_constraintEnd_toEndOf="@id/guideline2"
tools:ignore="MissingConstraints" />
這邊我是寫在副程式上然後再去主程式呼叫。
setOnSeekBarChangeListener()
當中的幾個方法
onProgressChanged()
:這個是當我們拉取進度條時的內部數值發生變化時會觸發。onStartTrackingTouch()
:這個是當我們按下SeekBar拉條時會觸發。onStopTrackingTouch()
:這就是當我們放開SeekBar的時候會觸發。 private void bindViews() {
/**
* SeekBar拉取條並顯示數值,數值範圍從1~100(包含小數點)
*/
seekbar = findViewById(R.id.seekBar);
textView = findViewById(R.id.TextView1);
seekbar.setOnSeekBarChangeListener (new SeekBar.OnSeekBarChangeListener () {
//Notification that the progress level has changed.
//當進度條的數值發生變化時...
@Override
public void onProgressChanged (SeekBar seekBar, int progress, boolean b) {
float Float_progress = (float) progress/100;
textView.setText("選擇"+Float_progress);
}
//Notification that the user has started a touch gesture.
//使用者開始觸碰時...
@Override
public void onStartTrackingTouch (SeekBar seekBar) {
Toast.makeText(context, "按住SeekBar", Toast.LENGTH_SHORT).show();
}
//Notification that the user has finished a touch gesture.
//使用者完成觸碰時...
@Override
public void onStopTrackingTouch (SeekBar seekBar) {
Toast.makeText(context, "放開SeekBar", Toast.LENGTH_SHORT).show();
}
});
}
以上這幾個狀態截圖展示。