动态膨胀视图时滚动到底部

Scroll to bottom when dynamically inflating view

我有一个 LinearLayout,我正在给它充气一个 CardView,就像这样:

final LinearLayout itineraryDetailLL = (LinearLayout) findViewById(R.id.itineraryDetailLinearlayout);
final View childView = getLayoutInflater().inflate(R.layout.cardview, null);
itineraryDetailLL.addView(childView);

子视图的 inflation 是通过单击按钮完成的。每当新的 cardview 膨胀时,我想滚动到屏幕底部。我是这样做的:

ScrollView scrollview = ((ScrollView) findViewById(R.id.masterScrollView));
scrollview.fullScroll(View.FOCUS_DOWN);

但这会滚动到屏幕中间的某个位置,而不是底部。我做错了什么?

你必须 post 一个事件发生在下一帧,当这个 ScrollView 被布置时:


    scrollView.post(new Runnable() {
        @Override
        public void run() {
            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
        }
    });