Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot interact with both the PopupWindow and Background (GoogleMap)

I have a PopupWindow that displays when I click a map Marker. The PopupWindow lets the user change the position of the Marker and select a radius around it. If I set focusable true I can interact with the PopupWindow but not the map. And, if I set focusable false, strangely, I can interact the SeekBar on the PopupWindow but neither the Buttons, nor the EditText respond, but I can interact with the map.

Question: How can I make it so that the User can interact with both the PopupWindow and the map at the same time?

        <LinearLayout android:layout_width="0dp" 
            android:layout_height="wrap_content" 
            android:layout_weight="1" 
            android:orientation="vertical">

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/event" 
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText android:id="@+id/markerEventNameEditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="@string/your_event_name"
                android:inputType="text" />

            <LinearLayout android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/radius"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView android:id="@+id/radiusTextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </LinearLayout>

            <SeekBar android:id="@+id/radiusSeekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp" />

            <LinearLayout android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <Button android:id="@+id/editEventButton"
                    android:layout_width="0px"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/edit_event" />

                <Button android:id="@+id/cancelMarkerWindowButton"
                    android:layout_width="0px"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/close" />
            </LinearLayout>
        </LinearLayout>

        <TableLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical">

            <TableRow android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:gravity="center">

                <ImageButton android:id="@+id/ImageButton03"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center"
                    android:src="@drawable/arrow_1" />
            </TableRow>

            <TableRow android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <ImageButton android:id="@+id/ImageButton01"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/arrow_1"/>

                <ImageButton android:id="@+id/ImageButton02"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/arrow_1"/>
            </TableRow>

            <TableRow android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center">

                <ImageButton android:id="@+id/imageButton1"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/arrow_1" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
    <View android:layout_width="match_parent"
        android:layout_height="3dp"
        android:background="@color/WhiteSmoke" />

    //Constructor
    public MarkerPopupWindow(Marker edited_event_marker,Context context)
    {   
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View markerWindowView = inflater.inflate(R.layout.event_editor_popup_window, null, false);
        markerWindowView.findViewById(R.id.cancelMarkerWindowButton);

        int height =  ViewGroup.LayoutParams.WRAP_CONTENT;
        int width = ViewGroup.LayoutParams.MATCH_PARENT;
        PopupWindow markerWindow = new PopupWindow(markerWindowView,
                width,height,
                false); //Focusable, if false window cannot be touched.
        markerWindow.setWindowLayoutMode(width, height);
        //Called these methods (commented out) attempting to fix the problem without success.
        //markerWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
        //markerWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
        //markerWindow.setOutsideTouchable(true);
        markerWindow.showAtLocation(findViewById(R.id.location_tab_container), Gravity.TOP, 0, 0);
    }
like image 780
Garzahd Avatar asked Nov 13 '22 10:11

Garzahd


1 Answers

The way your doing with the popup is that either the map or the popup can have focus, If you want to be able to move the map with the popup open I think you may need to have the popup from the maps api, just the way google maps shows when you click on a marker.

For more info about the popup (called InfoWindow in maps api) you can go here

like image 174
Marcio Covre Avatar answered Nov 15 '22 13:11

Marcio Covre