gpt4 book ai didi

android - 为什么 smoothScrollTo 在添加兄弟 RelativeLayout 后不能立即工作

转载 作者:行者123 更新时间:2023-11-29 14:37:44 26 4
gpt4 key购买 nike

我在 ScrollView (SV) 中有父级 RelativeLayout (RL)。在 parent RL 中,我有一个 child 也是 RL。我想将另一个子 RL 添加到父 RL 并向下滚动屏幕高度

RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(this.width,
this.height);
lparams.addRule(RelativeLayout.BELOW, first_child.getId());
new_layout.setLayoutParams(lparams);
rl.addView(new_layout);
int current_pos = sv.getScrollY();
sv.smoothScrollTo(0,current_pos + this.height);

新的子 RL 已成功添加到父 RL,但 smootScrollTo 方法无法正常工作。就像addView() 方法是异步工作的,当方法smoothScrollTo 被调用时,父RL 还没有包含新的子RL。

如何在父级中添加新的子 RL 并立即向下滚动屏幕?

最佳答案

试试这个:

RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(this.width,
this.height);
lparams.addRule(RelativeLayout.BELOW, first_child.getId());
new_layout.setLayoutParams(lparams);
rl.addView(new_layout);
int height = this.height;
sv.post(new Runnable() {
@Override
public void run() {
int current_pos = sv.getScrollY();
sv.smoothScrollTo(0,current_pos + height);
}
});

关于android - 为什么 smoothScrollTo 在添加兄弟 RelativeLayout 后不能立即工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970784/

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