要保存ScrollView的位置并在以后滚动回该位置,可以通过记录滚动偏移量来实现。下面是一个示例代码:
public class MainActivity extends AppCompatActivity {
private ScrollView scrollView;
private int scrollOffset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView = findViewById(R.id.scroll_view);
// 在滚动时保存滚动偏移量
scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
scrollOffset = scrollView.getScrollY();
}
});
}
@Override
protected void onResume() {
super.onResume();
// 在以后滚动到保存的偏移量位置
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, scrollOffset);
}
});
}
}
在这个示例中,我们通过scrollView.getScrollY()
来获取垂直滚动的偏移量,并将其保存在scrollOffset
变量中。在onResume()
方法中,通过scrollView.scrollTo(0, scrollOffset)
来滚动到保存的偏移量位置。
请确保在布局文件中添加了一个ScrollView,并将其id设置为scroll_view
。