【问题标题】:Move TextView according to touch coordinates in android根据android中的触摸坐标移动TextView
【发布时间】:2013-06-12 14:55:26
【问题描述】:

在我的应用程序中,我将SeekBar 进度显示为TextView,并且TextView 的X 坐标应该随着用户触摸SeekBar 上的某个位置而移动。为此,我将OnTouchListener 附加到SeekBar 上,在运行时更改TextView 坐标的逻辑如下:

@Override
public boolean onTouch(View v, MotionEvent event) {
    RelativeLayout.LayoutParams lParams = (LayoutParams) _currentValue.getLayoutParams();
    lParams.setMargins((int) v.getX(), 0, 0, 0);
    _currentValue.setLayoutParams(lParams);
    return false;
}

但是TextView 停留在那个位置并且没有移动。 我什至在onTouch() 方法中尝试了这些:

    _currentValue.setPadding((int)v.getX(), 0, 0, 0);
    _currentValue.setX((int)v.getX());
    _currentValue.setTranslationX((int)v.getX());

但是TextView的X坐标还是和触摸坐标不匹配。

有什么办法吗?

【问题讨论】:

  • 不返回false,如果要控制触摸返回True。
  • 嗯,不是真的。如果我返回 true,则搜索栏的拇指不会只滑动。由于已处理触摸事件。无论如何,我得到了答案。

标签: android textview coordinates seekbar


【解决方案1】:

我得到了答案。我所要做的就是

_currentValue.setPadding((int)event.getX(), 0, 0, 0);

AND NOT

_currentValue.setPadding((int)v.getX(), 0, 0, 0);

因为 v.getX() 不会改变,因为 "v" 是 SeekBar。我正在移动它的拇指,而不是SeekBar 本身。愚蠢的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    相关资源
    最近更新 更多