[英]How to move Textview automatically below android Seekbar thumb?
我有自定义Seekbar ,它显示运输状态,在它下方TextView显示包裹的(货物)位置。我想要的只是在不触摸Seekbar的情况下自动移动文本和拇指,我尝试了不同的解决方案,但没有一个工作,我不知道是否可以这样做,如果有人可以提供帮助,我将非常感谢他。
我的 output
我的代码:
private void setProgress(int statusNum) {
switch (statusNum) {
case 1:
seekBar.setProgress(1);
break;
case 2:
seekBar.setProgress(2);
break;
case 3:
seekBar.setProgress(3);
break;
case 4:
seekBar.setProgress(4);
break;
case 5:
seekBar.setProgress(5);
break;
case 6:
seekBar.setProgress(6);
break;
case 7:
seekBar.setProgress(7);
break;
case 8:
seekBar.setProgress(8);
break;
}
int seekBarWidth = seekBar.getWidth() - seekBar.getPaddingLeft() - seekBar.getPaddingRight();
float displacement = seekBarWidth * (seekBar.getProgress() / seekBar.getMax());
txtStatus.setX(displacement);
}
编辑:添加 xml
<com.warkiz.tickseekbar.TickSeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tsb_ticks_count="8"
app:tsb_thumb_color="@color/colorAccent"
app:tsb_thumb_size="12dp"
app:tsb_show_tick_marks_type="oval"
app:tsb_tick_marks_color="#33000000"
app:tsb_tick_marks_size="6dp"
app:tsb_track_background_color="#1A00C853"
app:tsb_track_background_size="2dp"
android:clickable="false"
app:tsb_progress="1.0"
app:tsb_min="1"
app:tsb_max="8"
app:tsb_track_progress_color="@color/colorGreen"
app:tsb_track_progress_size="4dp" />
<TextView
android:id="@+id/txt_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:fontFamily="sans-serif-medium"
android:text="Прийнято"
android:textColor="@color/colorGreen"
android:textAlignment="center"
android:layout_below="@id/seekbar"
/>
问题在这里:
txtStatus.setX(displacement);
请勿使用此方法更改视图的 position。 而是使用标准布局参数并编辑边距(在本例中marginLeft
)并调整它以实现您的目标。
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) txtStatus.getLayoutParams();
p.marginLeft = someValue;
txtStatus.requestLayout();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.