对于AndroidTV,我创建了一个简单的搜索栏和文本视图。我正在尝试对齐搜索栏拇指的文本视图,并尝试随进度移动。
无效示例代码
获取文本视图x位置的逻辑
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(final SeekBar seekBar, final int progress, boolean fromUser) {
if (fromUser) {
int width = seekBar.getWidth()
- seekBar.getPaddingLeft()
- seekBar.getPaddingRight();
float thumbPos = width
* seekBar.getProgress()
/ seekBar.getMax();
textView.setX(width );
}
}
}
XML
<TextView
android:id="@+id/textView"
android:layout_width="160dp"
android:layout_height="90dp"
android:layout_gravity="start"
android:background="#ffff00"/>
<SeekBar
android:id="@+id/previewSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:min="1"
android:max="10"/>
</RelativeLayout>
预期
答案 0 :(得分:0)
很抱歉,您的逻辑是正确的,但需要的更改很少。
float thumbPos = width * (seekBar.getProgress() / (float)seekBar.getMax())
textView.setTranslationX(thumbPos) ;
seekBar.getProgress()
是int
,而seekBar.getMax()
也是int
,如果将它们相除,它们将返回整数值,但是我们需要< strong> float (以十进制表示),这就是为什么我添加了更改