0

アクション バーを設定し、最初のタブにマップを表示しています。ユーザーがマップ上を移動できるように、最初のタブでスクロールを無効にしました。ユーザーが 2 番目のタブを押すと、地図の形をした大きな黒い四角と、前の地図の小さな断片があふれています。

ここに写真があります。スクリーンショットを撮るたびに何らかの理由で黒が消えてしまったので、2枚目は手動で撮らなければなりませんでした.

ここに画像の説明を入力 ここに画像の説明を入力

最初のタブのコード

public static class Map extends Fragment {
    MapView mapView;
    GoogleMap map;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.maptab, container, false);

        // Gets the MapView from the XML layout and creates it
        mapView = (MapView) v.findViewById(R.id.mapview);
        mapView.onCreate(savedInstanceState);

        // Gets to GoogleMap from the MapView and does initialization stuff
        map = mapView.getMap();
        //map.getUiSettings().setMyLocationButtonEnabled(false);
        //map.setMyLocationEnabled(true);
        map.addMarker(new MarkerOptions().position(new LatLng(50.167003,19.383262)));


        // Needs to call MapsInitializer before doing any CameraUpdateFactory calls
        try {
            MapsInitializer.initialize(this.getActivity());
        } catch (GooglePlayServicesNotAvailableException e) {
            e.printStackTrace();
        }

        // Updates the location and zoom of the MapView
        //CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
        //map.animateCamera(cameraUpdate);

        return v;
    }

    @Override
    public void onResume() {
        mapView.onResume();
        super.onResume();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }
}

XML ファイル maptab.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.google.android.gms.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </com.google.android.gms.maps.MapView>

</LinearLayout>

ハックソリューションこれを解決する他の方法が考えられるかどうか教えてください

    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
        // When the given tab is selected, switch to the corresponding page in the ViewPager.
        if(tab.getPosition() == 1){ //If it is the tab next to the map tab, set map invisible
            mapView.setVisibility(View.INVISIBLE);
        } else if(tab.getPosition() == 0 && mapView != null){ //If the map tab is clicked and the map is not null, set map to visible
            mapView.setVisibility(View.VISIBLE);
        }
        mViewPager.setCurrentItem(tab.getPosition());

    }
4

0 に答える 0