弹出窗口无法在Marker上运行

时间:2017-04-07 03:04:36

标签: android popupwindow marker

早上好

在这里我尝试在标记点击上添加弹出窗口功能但是当我启动我的应用程序时,弹出窗口不起作用。 我试着解决它,但仍然无法解决问题。

这是我的java代码

package com.everstudio.nadejenew;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

import static android.content.Context.LAYOUT_INFLATER_SERVICE;

public class LocationFragment extends Fragment implements OnMapReadyCallback {

static View view;
private GoogleMap mMap;
private RelativeLayout dialog_popup;
Marker m1;

public LocationFragment() {
    // Required empty public constructor
}

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    if (view == null) {
        view = inflater.inflate(R.layout.fragment_location, container, false);
        SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
    return view;
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    // Add a marker in Sydney and move the camera
    LatLng location = new LatLng(2.1895696, 102.2478482);


    m1 = mMap.addMarker(new MarkerOptions().position(location).title("Location"));


    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener()
    {

        @Override
        public boolean onMarkerClick(Marker Marker) {
            LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView = inflater.inflate(R.layout.marker_popup, null);
            final PopupWindow popupWindow = new PopupWindow(
                    popupView,
                    FrameLayout.LayoutParams.WRAP_CONTENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT);

            Button btnDismiss = (Button)popupView.findViewById(R.id.dismissbtn);
            btnDismiss.setOnClickListener(new Button.OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    popupWindow.dismiss();
                }});
            return true;
        }

    });
}

  }

1 个答案:

答案 0 :(得分:1)

您缺少popupWindow.showAsDropDown(popupView);

相关问题