5

このスライディング メニューhttps://github.com/iPaulPro/SlidingMenuを使用するアクティビティで、android maps api v2 のマップ ビューがあります。スライド メニューは、マップ ページ以外ではうまく機能します。マップの正確なサイズであるスライド メニューを覆う黒いビューがあります。これは、私が言いたいことの概要を説明するために、マップの高さを 100 dp に設定した例です。

問題を表示

私がそのビューに触れると、それは消えてしまいます。どうすればそれを取り除くか、透明にすることができますか? requestTransparentRegion() トリックを試しました。そこにサイコロはありません。

4

3 に答える 3

13

このスタック オーバーフロー ポストViewPager with Google Maps API v2:mysterious black viewを見つけ、通常のマップ フラグメントの代わりにこのクラスを使用しました。

package com.myapp.gms.maps;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import com.google.android.gms.maps.SupportMapFragment;

/**
 * @author btate
 */
public class TransparentSupportMapFragment extends SupportMapFragment {

    public TransparentSupportMapFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, 
                                 ViewGroup view, 
                                 Bundle savedInstance) {

        View layout = super.onCreateView(inflater, view, savedInstance);
        FrameLayout frameLayout = new FrameLayout(getActivity());
        frameLayout.setBackgroundColor(
           getResources().getColor(android.R.color.transparent));
        ((ViewGroup) layout).addView(frameLayout,
            new ViewGroup.LayoutParams(
               LayoutParams.MATCH_PARENT, 
               LayoutParams.MATCH_PARENT
            )
        );
        return layout;
    }

}
于 2013-02-15T15:10:34.933 に答える
0

この問題には、もう 1 つの解決策があります。別のフラグメント内に MapFragment を表示しています。MapFragment は FrameLayout に動的に追加されます。

解決策は、スライド メニューの開閉イベントで andframeLayout.setVisibility(View.Visible)を使用することです。frameLayout.setVisibility(View.Gone)追加のビューを追加する必要はありません。そして、黒い領域は完全になくなりました。

getSlidingMenu().setOnOpenListener(
    new OnOpenListener() {
        @Override
        public void onOpen() {
            frameLayout.setVisibility(View.GONE);
        }
    }
);

getSlidingMenu().setOnClosedListener(
    new OnClosedListener() {

        @Override
        public void onClosed() {
            frameLayout.setVisibility(View.VISIBLE);
        }
    }
);
于 2013-03-02T09:19:22.837 に答える
0

TransparentSupportMapFragment は android 2.3.7 の問題を解決しました ありがとうございます!

于 2013-07-12T04:43:34.953 に答える