gpt4 book ai didi

java - 使拇指的中心 TextView 并使用搜索栏进度移动 TextView

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:59 26 4
gpt4 key购买 nike

对于 AndroidTV,我创建了一个简单的搜索栏和 TextView 。我正在尝试对齐搜索栏拇指的 TextView 并尝试随着进度移动。

尝试了这些解决方案,但不起作用 link1 , link2

示例代码
获取 TextView 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>

预期

  1. Textview 应随着搜索栏进度而移动。
  2. Textview 应位于拇指中心且位于搜索栏上方,如屏幕截图所示。
  3. TextView 应在进度 > TextView 宽度/2 && 进度时移动

最佳答案

很抱歉回答晚了,您的逻辑是正确的,但需要进行一些更改。

float thumbPos = width * (seekBar.getProgress() / (float)seekBar.getMax())

textView.setTranslationX(thumbPos) ;

seekBar.getProgress() 是一个 intseekBar.getMax() 也是一个 int,如果将它们相除,它们将返回整数值,但我们需要float(十进制),这就是我添加更改的原因

关于java - 使拇指的中心 TextView 并使用搜索栏进度移动 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56398908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com