Подтвердить что ты не робот

Масштабирование зума не уменьшает масштаб при переходе на следующую страницу фрагмента

Я сделал масштабирование с помощью этого polidea ZoomView. Я реализовал этот пинч-код масштабирования на странице фрагмента.

ZoomView zoomView;

//inside onCreateView method

zoomView= new ZoomView(getActivity());
zoomView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

zoomView.addView(gridTable);
zoomView.setRotationY(180);
gridviewlayout.addView(zoomView);

zoomview jar

Pinch Zoom in и Zoom out работал на странице таблицы gridview. Но если я увеличиваю масштаб страницы, а затем прокручиваюсь до следующей страницы фрагмента. После этого, когда я возвращаюсь к предыдущей странице фрагмента, страница все еще находится в увеличенном состоянии.

То, что я пытаюсь сделать, это reset страница в нормальном состоянии, когда я перехожу на следующую страницу фрагмента.

Я искал много образцов. Но все связано с Imageview. Я не получил никакого образца для увеличения размера фрагментов с макетом.

Любой может помочь мне с этим. Спасибо.

4b9b3361

Ответ 1

добавьте ниже код к вашему фрагменту:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(!isVisibleToUser){
        if(mZoomView != null)mZoomView.zoomTo(1,0,0);
    }
}

Ответ 2

проверить эту ссылку...

ViewPager с подробным жизненным циклом фрагмента

в этом учебнике показано создание слушателя при паузе и возобновлении прослушивания для каждого фрагмента. Таким образом, всякий раз, когда вы переходите на другие фрагменты, вы можете вызывать уменьшение в фрагменте onPauseListener. Этот учебник работает для меня.

Надеюсь, эта работа для вас.

Ответ 3

переопределить этот метод:

setPrimaryItem(ViewGroup container, int position, Object object)

этот метод вызывается каждый раз, когда позиция изменяется. Теперь вы знаете, что это видимый фрагмент. это означает, что вы знаете, что тоже не видно (да, я шерлок). Теперь вы можете установить значение масштабирования для всех остальных фрагментов (возможно, сравнение предыдущего индекса и нового индекса?)

Было бы неплохо сохранить ссылку на ваши фрагменты и реализовать для них некоторые методы, например reset() or setZoom(float)

Надеюсь, это поможет.