gpt4 book ai didi

java - 干净的滚动方式

转载 作者:行者123 更新时间:2023-11-29 02:25:33 25 4
gpt4 key购买 nike

我希望我的 Activity 在每次显示时都滚动。我使用这段代码:

@Override
public void onResume() {

ViewTreeObserver vto = maxButton.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
maxButton.getViewTreeObserver().removeOnGlobalLayoutListener(this);
float y = maxButton.getY();
findViewById(R.id.map_activity_scrollview).scrollTo(0, (int) (y - 2*Constants.SCREEN_HEIGHT/3));

}
});

ConstraintLayout cl = findViewById(R.id.map_activity_constraint);
Button b = new Button(this);
cl.addView(b); // triggers the listener
cl.removeView(b);

super.onResume();
}

如果不添加按钮,它仅在第一次显示 Activity 时起作用。这就是我人为添加和删除按钮的原因。

有没有更简洁的方法来做到这一点?

最佳答案

如果“显示”是指 onResume 并且根据您的代码我假设您这样做了,为什么不试一试:

@Override
public void onResume() {
super.onResume();
maxButton.post(new Runnable() {
@Override
public void run() {
float y = maxButton.getY();
findViewById(R.id.map_activity_scrollview).scrollTo(0, (int) (y - 2*Constants.SCREEN_HEIGHT/3));
}
}
}

关于java - 干净的滚动方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52459503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com