Android-прокрутка не работает в методе onResume

Я хотел бы прокрутить экран до определенной позиции, когда экран отображается, поэтому я сделал этот код в функции Onresume моего фрагмента

  scrollView.post(new Runnable() {
        @Override public void run () {
            scrollView.scrollTo(0, -200);
            Log.d(TAG, "x: " + scrollView.getScrollX() + " " + "y: " + scrollView.getScrollY());
        }
    }

    );

но прокрутка не делаетт scrollI '

Ответы на вопрос(1)

позиции при возврате к ней. Прокрутка невозможна в onResume (). Я подозреваю, что когда вы публикуете работоспособный (как вы упоминаете в своем вопросе), нет никакой гарантии, что он будет работать.

мы нашли2 решения, надеюсь это поможет:

1) Более общий подход, все же это неработать на уровне API < 11:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // inflate your main view
    mView = inflater.inflate(R.layout.your_fragment_id, container, false);

    // find your scroll view
    mScrollContainer = (ScrollView) mView.findViewById(R.id.scroll_container);


    // add OnLayoutChangeListener
    mView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {

                // get your X and Y to scroll to 
                ...
                mScrollContainer.scrollTo(x,y);
            }
        }
    });
}

Вы должны получить X и Y из своего собственного источника (скажем, своего собственного пакета), так как в большинстве случаев - когда активность несохрани этосостояние - ты просто можешьиспользовать фрагмент 's saveInstanceState (см.Вот)

2) Более конкретный, но иногда более полезный метод - установить OnFocusChangeListener для элемента, который получает фокус после показа фрагмента:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ...

    mListView.setOnFocusChangeListener(new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
        // do your scrolling here   
        }
    });
}

Ваш ответ на вопрос