【问题标题】:Set Google Maps on another fragment在另一个片段上设置谷歌地图
【发布时间】:2014-07-12 01:01:48
【问题描述】:

我正在为我的一个应用程序创建向导,用户必须在其中提供详细信息。当我将我的谷歌地图放入片段时会出现问题。请注意我有框架布局,我在其中放置片段,并且在那个片段中我想要有地图请帮我...

这里是我的代码:

FragmentActivity 类

public class IntroDuction_Main extends FragmentActivity
.................
.......... 
F_map map=new F_map();
            map.setArguments(getIntent().getExtras());
            Transectionfragment(map);
}
private void Transectionfragment(Fragment frag) {
    FragmentManager fragmentManager;
    fragmentManager = getSupportFragmentManager();

    FragmentTransaction transaction = fragmentManager.beginTransaction();

    transaction.setCustomAnimations(android.R.anim.fade_in,
            android.R.anim.fade_out, android.R.anim.fade_in,
            android.R.anim.fade_out);
    transaction.replace(R.id.MainFragment, frag);

    transaction.addToBackStack(null);
    transaction.commit();

}

Fragment Activity 布局

 <TextView
    android:id="@+id/lat_lng"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="10"
    android:gravity="center_horizontal"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<FrameLayout
    android:id="@+id/MainFragment"
    android:layout_width="fill_parent"
    android:layout_height="0dp" 
    android:layout_weight="80">
</FrameLayout>

<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="10"
    android:enabled="false"
    android:text="Button" />

地图片段类

    package in.high_tech.foodonclick.Introduction;

import in.high_tech.foodonclick.R;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.SupportMapFragment;

public class F_map extends Fragment {

    private GoogleMap mMap;
    private Bundle mBundle;

    @Override
    public View onCreateView(LayoutInflater inflater,
            @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_map, container, false);
        try {
            MapsInitializer.initialize(getActivity());
        } catch (GooglePlayServicesNotAvailableException e) {
            // TODO handle this situation
        }
        MapView mMapView = (MapView) view.findViewById(R.id.map);
        mMapView.onCreate(mBundle);
        setUpMapIfNeeded(view);

        // TODO Auto-generated method stub

        return view;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mBundle = savedInstanceState;
    }

    private void setUpMapIfNeeded(View inflatedView) {
        if (mMap == null) {
            mMap = ((MapView) inflatedView.findViewById(R.id.map)).getMap();
            if (mMap != null) {
                // setUpMap();
            }
        }
    }

}

片段类的布局

    <?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:mapType="normal" />

这是我的 Logcat

    07-11 04:45:45.242: E/AndroidRuntime(361): FATAL EXCEPTION: main
07-11 04:45:45.242: E/AndroidRuntime(361): java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout cannot be cast to com.google.android.gms.maps.MapView
07-11 04:45:45.242: E/AndroidRuntime(361):  at in.high_tech.foodonclick.Introduction.F_map.onCreateView(F_map.java:31)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.os.Handler.handleCallback(Handler.java:725)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.os.Handler.dispatchMessage(Handler.java:92)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.os.Looper.loop(Looper.java:153)
07-11 04:45:45.242: E/AndroidRuntime(361):  at android.app.ActivityThread.main(ActivityThread.java:5297)
07-11 04:45:45.242: E/AndroidRuntime(361):  at java.lang.reflect.Method.invokeNative(Native Method)
07-11 04:45:45.242: E/AndroidRuntime(361):  at java.lang.reflect.Method.invoke(Method.java:511)
07-11 04:45:45.242: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-11 04:45:45.242: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-11 04:45:45.242: E/AndroidRuntime(361):  at dalvik.system.NativeStart.main(Native Method)
07-11 04:45:45.258: D/dalvikvm(361): GC_CONCURRENT freed 122K, 16% free 8728K/10308K, paused 3ms+2ms, total 21ms

【问题讨论】:

  • 我做了类似的事情。您是否将不同的片段放在不同的选项卡中?
  • 不,我没有标签,但是当我点击下一个按钮时,片段的视图正在改变,实际上还有 3 个片段。我每次点击下一个按钮时都会替换它
  • 是,但有空点异常

标签: android android-fragments google-maps-android-api-2


【解决方案1】:

我找到了解决方案。我刚刚在我的布局中使用了 mapview

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2017-08-16
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多