我使用此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);
缩放放大和缩小在gridview表页面中工作。但是如果我放大页面然后滚动到下一个片段页面。之后当我回到上一个片段页面时,页面仍然处于缩放状态
我要做的是在移动到下一个片段页面时将页面重置为正常状态。
我搜索了很多样本。但是所有内容都与Imageview有关。我没有得到任何样本,用于缩放带有布局的片段。
任何人都可以帮助我。谢谢。
答案 0 :(得分:5)
将以下代码添加到您的片段中:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(!isVisibleToUser){
if(mZoomView != null)mZoomView.zoomTo(1,0,0);
}
}
答案 1 :(得分:1)
检查此链接...
ViewPager with detailed fragment lifecycle
该教程展示了为Pause和Resume Listener为每个片段创建监听器。因此,每当您更改为其他片段时,您可以在片段的onPauseListener中调用缩小。本教程适合我。
希望这对你有用。
答案 2 :(得分:1)
覆盖此方法:
setPrimaryItem(ViewGroup container, int position, Object object)
每次更改位置时都会调用此方法。现在您知道可见片段了。这意味着你知道什么是不可见的(是的,我是sherlock)。现在你可以设置所有其他片段的缩放值。(比较以前的索引和新索引可能?)
您最好保留对您的片段的引用并为它们实现一些方法,例如reset() or setZoom(float)
我希望这会有所帮助。