Android 计算 scrollTo 在 Horizo​​ntalScrollView 中的位置

标签 android

我有 Horizo​​ntalScrollView 和几个 TextView。每个 TextView 可能包含不同长度的文本。

我应该如何使用“scrollTo(x, y)”计算滚动到的正确偏移量?

滚动有效,但与预期不同。 我已经尝试了各种方法(getLocationOnScreen()、getMeasuredWidth()、getWidth() 在每个子元素上并将它们添加到 getehr),但我仍然无法获得我喜欢的结果。 View 滚动得有点远或不够。

解决方案

当 HSV 有多个不同宽度的元素时,你可以像这样在每个元素上居中:

for (TextView el : requiresFocus) {
    if (el.getText().equals(requiresFocus)) {
        offsetX = ((el.getLeft() + el.getRight()) / 2) - (myHSV.this.getWidth() / 2);
        scrollTo(offsetX, 0);
        break;
    }
}

使用 ((el.getLeft() + el.getRight())/2) 您将获得元素的中心,使用 (myHSV.this.getWidth()/2 ) 您将获得屏幕的中心。

最佳答案

试试这个:

int x, y;
x = myTextView.getLeft();
y = myTextView.getTop();

myHsv.scrollTo(x, y);

getLeft()getTop() 应该返回相对于父 View (即本例中的 Horizo​​ntalScrollView)的坐标。

关于Android 计算 scrollTo 在 Horizo​​ntalScrollView 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002282/

相关文章:

android - 更改android中编辑文本的样式

android - 我无法启动索尼 Xperia S 上的引导加载程序(已解锁并已 root)

android - 如何使用菜单选项从另一个 Activity 格式化一个 Activity

android - 将字符串从 Java 传递到 C++ 并使用带有 NDK 案例错误的 popen?

java - 安卓绘图

android - 即使路径正确,Unity 也无法选择 Android SDK

JavaMail 将附件作为 base64 添加到 Mime 正文

android - RoundedImageView - 添加填充而不裁剪图像

android - 执行 org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException 时发生故障(无错误消息)

android - Proguard 混淆了合并库 list 中的 Activity 名称