动态充气视图时如何滚动到底部

5

我有一个 LinearLayout,我想在其中填充一个 CardView,代码如下:

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

点击按钮时,子视图的充气是完成的。每当充气新的卡片视图时,我想滚动到屏幕底部。我是这样做的:
ScrollView scrollview = ((ScrollView) findViewById(R.id.masterScrollView));
scrollview.fullScroll(View.FOCUS_DOWN);

但是它会滚动到屏幕中间而不是底部,我做错了什么?

在充气视图后,您可以通过“scrollview.smoothScrollTo(0, (int) childView.getY());”来平滑滚动到它。 - yashkal
1个回答

4

您需要在下一帧发布一个事件,当此ScrollView被布局时:


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

注:该代码段是为了实现当ScrollView被布局后,自动滚动到底部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接