Как убрать черную обложку в верхней части скользящего меню?

В моем приложении есть скользящее меню, разработанное jfeinstein10. В моем приложении все работает ;)

У меня есть фрагмент, который является хостом MapView. Этот фрагмент, как и другие мои фрагменты, расширен из класса Fragment. Только в этом фрагменте есть черная обложка/слой поверх содержимого меню, когда я открываю скользящее меню. Нет черной обложки, когда я открываю меню в других фрагментах. Кроме того, я обнаружил, что высота коробки точно такая же, как у фрагмента.

Вы видели эту проблему раньше? любые комментарии или предложения будут оценены.

введите здесь описание изображения

=> Обновить

Основываясь на том, что предложил Селей, я установил прозрачный фон. Однако независимо от того, какой цвет я назначаю (прозрачный или другой цвет), он все еще виден и черный :( Это мой код:

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    map:uiCompass="true"
    android:background="#00000000"/> 

person Hesam    schedule 23.04.2013    source источник
comment
Спасибо, Марс. На самом деле я не ставил свой код, потому что он отлично работает. Я не думаю, что это из-за кода, все функции правильные. Я думаю, может быть, кто-то уже сталкивался с этой проблемой. Я думаю, это должно из-за MapView. но я не уверен :(   -  person Hesam    schedule 23.04.2013
comment
Привет, ты нашел решение этой проблемы? большое спасибо, чувак   -  person Paul    schedule 03.05.2013


Ответы (4)


Решение заключалось в добавлении map:zOrderOnTop="true" в XML.

Дополнительную информацию см. на странице эта ссылка.

person Hesam    schedule 24.04.2013
comment
Проблема в том, что я не могу ничего добавить на карту, кроме маркера!! - person The Finest Artist; 10.05.2013

Я пробовал все методы здесь, но ни один из них не работал хорошо. Использование GoogleOptions для перемещения zOrder наверх означало, что основные элементы управления масштабированием были скрыты за картой.
Последнее предложение по этой ссылке: https://github.com/jfeinstein10/SlidingMenu/issues/168#issuecomment-17065660 (ckakei) исправил это для меня.
Хитрость в том, чтобы добавить пустой, прозрачный вид в макет:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<FrameLayout
    android:id="@+id/view_map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</FrameLayout>
<View
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent" />

I'm inflating this view then in a Fragment. I replace the view_map FrameLayout with the SuppportMapFragment.

Это важная часть этого класса:

private GoogleMap googleMap;
private SupportMapFragment mapFragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.view_map_layout, container,
            false);

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    FragmentManager fm = getChildFragmentManager();
    if (mapFragment == null) {
        mapFragment = SupportMapFragment.newInstance();
    }
    if (savedInstanceState == null) {
        mapFragment.setRetainInstance(true);
    } else {
        googleMap = mapFragment.getMap();
    }
    fm.beginTransaction().replace(R.id.view_map, mapFragment).commit();
}
person karol    schedule 23.05.2013
comment
Это работает, спасибо! Но мне пришлось закомментировать setRetainInstance(true), так как я получил ошибку вложенных фрагментов. Я использую это только для Build.VERSION.SDK_INT ‹ 11 - person alice_silver_man; 12.02.2015

установить прозрачный фон MapView - android:background="#00000000"

person Selei Laurentiu    schedule 23.04.2013
comment
Спасибо Selei, но это все еще видно. Я добавил код пользовательского интерфейса в вопрос. Пожалуйста, проверь это. Спасибо еще раз ;) - person Hesam; 24.04.2013

Я только что сделал вид копирования карты, который копирует карту при открытии или закрытии скользящего меню.

@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
private void showMapCopy(boolean show) {

    View map = findViewById(R.id.map);
    View mapCopy = findViewById(R.id.map_copy);

    if (show) {
        map.setDrawingCacheEnabled(true);
        Bitmap bitmap = map.getDrawingCache();
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
            mapCopy.setBackgroundDrawable(new BitmapDrawable(getResources(), bitmap));
        else
            mapCopy.setBackground(new BitmapDrawable(getResources(), bitmap));
        mapCopy.setVisibility(View.VISIBLE);
    } else {
        map.setDrawingCacheEnabled(false);
        mapCopy.setVisibility(View.GONE);
    }
}

Скользящее меню Открыть прослушиватель

    mMenu.setOnClosedListener(new OnClosedListener() {
        @Override
        public void onClosed() {
            showMapCopy(false);
        }
    });

Оноптионитемселектед

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.abs__home:
        case android.R.id.home:
                showMapCopy(true);
                mMenu.toggle();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
person The Finest Artist    schedule 09.05.2013