android - 在自定义警报对话框中显示 map

标签 android xml google-maps

我正在创建一个自定义警报对话框,其中显示了一张 map 。 map 是使用 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" />

最佳答案

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

另一种方法是使用 supportMapFragment 创建一个 MapActivity 并添加 android:theme="@android:style/Theme.Dialog"AndroidManifest 中的 MapActivity,它将显示为 dialog

希望对你有帮助~

关于android - 在自定义警报对话框中显示 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43666777/

相关文章:

android - 无法在设备“emulator-5554”上安装 HelloAndroid.apk!

重启activity后Android WebView白页

XML 'name' 属性,以及带有 SelectNodes 的 XML 变量类型

javascript - Google 将 api autoComplete 不显示下拉列表

android - SphericalUtil.computeDistanceBetween() 与 Location.distanceBetween()

android - JsonMappingException : No suitable constructor found for type

java - 圆角按钮不起作用

xml - WCF REST 问题、绑定(bind)、配置

java - JAXB - 将元素解析为字符串

javascript - google map place API如何从建议中删除国家名称