在自定义警报对话框上显示地图

时间:2017-04-27 19:51:06

标签: android xml google-maps

我正在创建一个自定义警告对话框,在其中显示一个地图。地图是使用supportMapFragment(下面的代码)创建的,这是一个很好的做法,还是会推荐MapView?

Java类:

public class NearbyUtil implements OnMapReadyCallback {

    public static final String TAG = NearbyUtil.class.getSimpleName();

    private Context ctx;
    private GoogleMap map;
    private android.support.v4.app.FragmentManager fragmentManager;
    private SupportMapFragment mapFragment;

    public NearbyUtil(Context context, android.support.v4.app.FragmentManager fragmentManager){
        ctx = context;
        this.fragmentManager = fragmentManager;
        showDialog();
    }

    public void showDialog(){
        final Dialog dialog = new Dialog(ctx);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.dialog);
        dialog.show();

        mapFragment = (SupportMapFragment) fragmentManager.findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);


    //... other code
}

XML:

<fragment
    android:id="@+id/map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

1 个答案:

答案 0 :(得分:1)

如果您使用的是DialogFragment,那么最好使用MapView,否则您可以使用supportMapFragment

另一个流程是使用MapActivity创建supportMapFragment并将android:theme="@android:style/Theme.Dialog"添加到MapActivity中的AndroidManifest,它将显示为{{} 1}}。

希望这会有所帮助〜