将包含片段的 ScrollView 滚动到特定片段

Scroll a ScrollView containing fragments to a specific fragment

我有一个 ScrollView,我在特定条件下创建了多个 Fragments。当我向 ScrollView 添加一个新片段以使其滚动时,我希望 Fragment 位于屏幕的最顶部。这是我的代码:

来自 Fragment 我在 onCreateView 中调用它(因为 Fragments 是动态生成的)

((MainActivity)getActivity()).scrollToFrag(frag_number+"");

在我的里面 MainActivity.class

public final void scrollToFrag(final String frag){
    scrollView.postDelayed(new Runnable() {
        public void run() {
            scrollView.smoothScrollTo(0, getSupportFragmentManager().findFragmentByTag(frag).getView().getTop());
        }
    }, 100);
}

我注意到一个小的滚动移动,但不是我需要的(Fragment 根本没有到达顶部)

通过 运行 片段中可运行的代码也解决了这个问题

view.postDelayed(new Runnable() {
                @Override
                public void run() {
                    ((MainActivity)getActivity()).scrollToFrag(frag_number+"");
                }
            }, 200);