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();
}
我在点击视图时调用了视图的 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();
}