View.scrollTo(int x, int y) 在 Android 中不起作用

View.scrollTo(int x, int y) don't work in Android

我在点击视图时调用了视图的 scrollTo(int x, int y),但它没有移动。

这样的代码:

public class MainActivity extends Activity implements View.OnClickListener {

View mView;

int lastScrollX;
int lastScrollY;

Scroller mScroller;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mScroller = new Scroller(this);
    mView = findViewById(R.id.test_view);
    mView.setOnClickListener(this);
    lastScrollX = mView.getScrollX();
    lastScrollY = mView.getScrollY();
}

@Override
public void onClick(View v) {
    lastScrollY += 50;
    lastScrollX += 50;
    mView.scrollTo(lastScrollX, lastScrollY);
    mView.invalidate();
}

}

谁能帮帮我?

您不能使用 scrollTo 函数滚动 ImageView。

ScrollTo() 用于操作您通常在 ScrollView 或 RecyclerView 中找到的实际滚动条。当您使用 ScrollTo 时,滚动条会相对于您提供给函数的 X、Y 移动。您实际上并没有移动任何视图,您只是将屏幕的焦点移动到特定位置。

你可能会遇到这样的事情:

ImageView mView;

float lastScrollX;
float lastScrollY;

...

@Override
public void onClick(View v) {
    lastScrollX = mView.getScrollX();
    lastScrollY = mView.getScrollY();
    lastScrollY += 50.0;
    lastScrollX += 50.0;
    mView.setX(lastScrollX) 
    mView.setY(lastScrollY)
    mView.invalidate();
}