【发布时间】:2019-08-27 21:24:58
【问题描述】:
但是,这是我的输出:
我有一些问题。当我使用 SeekBar 向前搜索时,标记仍然存在,我想隐藏它。我的另一个问题是在 SeekBar 之外放置了两个刻度线。另外,我想在 SeekBar 上方的 SeekBar 上放置每个步骤的编号。我尝试了下面的代码,但仅在onProgressChanged 方法中获得了 SeekBar 的正确位置。
private fun setNumber(){
for(i in 0..10 step 2){
var pos=i*(seekbar.width - 2 * seekbar.thumbOffset)/seekbar.max
Log.e(TAG,"pos $i= $pos")
when(i){
0 -> {
txt_label_zero.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
2 -> {
txt_label_two.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
4 ->{
txt_label_four.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
6 ->{
txt_label_six.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
8 ->{
txt_label_eight.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
10 ->{
txt_label_ten.setX(seekbar.x + pos + seekbar.thumbOffset / 2)
}
}
}
}
private fun setSeekbar() {
seekbar?.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
}
})
}
这里是drawable和xml布局: drw_bg_seekbar:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:gravity="center_vertical">
<shape android:shape="rectangle"
>
<corners android:radius="15dp"/>
<size android:height="30dp" />
<solid android:color="@color/mainGrey" />
</shape>
</item>
<item android:id="@android:id/progress"
android:gravity="center_vertical">
<scale android:scaleWidth="100%">
<selector>
<item>
<shape android:shape="rectangle"
>
<corners android:radius="15dp"/>
<size android:height="30dp" />
<solid android:color="@color/lightGreen" />
</shape>
</item>
</selector>
</scale>
</item>
</layer-list>
drw_thumb_seekbar:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid
android:color="@color/darkGrey" />
<size
android:width="24dp"
android:height="24dp" />
</shape>
drw_bg_tickmark:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:tint="@color/darkGrey">
<corners android:radius="4dp"/>
<size android:width="16dp"
android:height="16dp" />
<solid android:color="@color/darkGrey" />
还有我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".OneFragment"
>
<LinearLayout
android:id="@+id/lay_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="40dp"
android:visibility="visible"
>
<TextView
android:id="@+id/txt_label_zero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
/>
<TextView
android:id="@+id/txt_label_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
/>
<TextView
android:id="@+id/txt_label_four"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
/>
<TextView
android:id="@+id/txt_label_six"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
/>
<TextView
android:id="@+id/txt_label_eight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
/>
<TextView
android:id="@+id/txt_label_ten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10"
/>
</LinearLayout>
<androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="10dp"
android:layout_below="@+id/lay_number"
style="@style/Widget.AppCompat.SeekBar.Discrete"
android:max="10"
android:visibility="visible"
android:progress="4"
android:thumb="@drawable/drw_thumb_seekbar"
android:progressDrawable="@drawable/drw_bg_seekbar"
android:tickMark="@drawable/drw_bg_tickmark"/>
</RelativeLayout>
【问题讨论】:
-
也许这会给你一些提示stackoverflow.com/questions/20855815/…
标签: android android-layout seekbar