我有一个包含LinearLayout的HorizontalScrollView.在屏幕上我有一个Button,它将在运行时向LinearLayout添加新的视图,我希望滚动视图在添加新视图时滚动到列表的末尾.
我几乎让它工作 - 除了它总是滚动一个视图而不是最后一个视图.在没有首先计算包含新视图的情况下,它似乎在滚动.
在我的应用程序中,我使用的是自定义View对象,但我制作了一个使用ImageView并具有相同症状的小型测试应用程序.我在Layout和ScrollView上尝试了各种各样的东西,比如requestLayout(),我尝试了scrollTo(Integer.MAX_VALUE),它滚动到了netherverse :)我是否违反了UI线程问题?
======
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.addButton);
b.setOnClickListener(new AddListener());
add();
}
private void add() {
LinearLayout l = (LinearLayout) findViewById(R.id.list);
HorizontalScrollView s =
(HorizontalScrollView) findViewById(R.id.scroller);
ImageView i = new ImageView(getApplicationContext());
i.setImageResource(android.R.drawable.btn_star_big_on);
l.addView(i);
s.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
}
private class AddListener implements View.OnClickListener {
@Override
public void onClick(View v) {
add();
}
}
}
Run Code Online (Sandbox Code Playgroud)
布局XML: …