【发布时间】:2015-05-01 10:40:48
【问题描述】:
我在使用 PageTransformer 和 MapView 设置 ViewPager 时遇到问题。问题是当 viewpager 设置为使用 PageTransformer 时,mapview 在平移时消失(变为透明)。但是,如果我不使用变压器而只是平移 Mapview 就可以了。有谁知道是什么导致了这种行为?
目前 PageTransformer 没有什么特别的,只是设置它似乎会影响地图视图的绘制方式。我应该注意到地图是透明的,而地图视图(法律声明)仍然存在。当 ViewPager 进入空闲状态时,地图就会出现。
viewPager.setPageTransformer(true, this);
...
@Override
public void transformPage(View view, float position) {
}
XML:ViewPager 片段
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF">
<com.google.android.gms.maps.MapView
android:id="@+id/mapcontainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"/>
</FrameLayout>
地图片段:
private GoogleMap map;
private MapView mapView;
private Bundle mapBundle;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mapBundle = savedInstanceState;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.mapfragment, container, false);
MapsInitializer.initialize(getActivity());
mapView = (MapView) rootView.findViewById(R.id.mapcontainer);
mapView.onCreate(mapBundle);
map = mapView.getMap();
return rootView;
}
@Override
public void onResume(){
super.onResume();
mapView.onResume();
}
@Override
public void onPause(){
super.onPause();
mapView.onPause();
}
@Override
public void onDestroy(){
super.onDestroy();
mapView.onDestroy();
}
【问题讨论】:
-
对于 MapView,使用处理程序插入一些后期延迟以在您的 viewpager 中加载地图。告诉我它解决了你的问题
标签: android android-fragments android-viewpager android-mapview android-pagetransformer