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

时间:2018-11-25 08:41:28

标签: java android fragment android-scrollview

我有一个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根本无法到达顶部)

1 个答案:

答案 0 :(得分:0)

通过在Fragment内部的可运行代码中运行代码来解决此问题

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