Я интегрировал новый фрагмент api v2 карт Google в пейджер просмотра. При прокрутке от фрагмента карты черный вид перекрывает соседние фрагменты. Кто-то решил?
Изменить: скриншот
public static class PagerAdapter extends FragmentPagerAdapter{
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
Fragment pageFragment;
switch (position) {
case 0:
pageFragment = new TabAFragment();
break;
case 1:
pageFragment = new TabBFragment();
break;
case 2:
pageFragment = SupportMapFragment.newInstance();
break;
default:
pageFragment = null;
break;
}
return pageFragment;
}
}
GoogleMap
объект изViewPager
? Застрял на этом неделями. Если вы плохо поняли вопрос, посмотрите мой вопрос, вы найдете мой пост. Ответьте, пожалуйста.screen record
этой проблемы, похоже, не возникает.Ответы:
Мне удалось предотвратить появление черной поверхности после перехода, разместив другое представление с прозрачным фоном поверх
ViewPager
внутренней частиFrameLayout
:источник
Была такая же проблема со SlidingMenu и ViewPager. Я заметил, что кнопки управления на фрагменте карты не черные в артефакте слева. Я решил проблему, переопределив
onCreateView()
методMapFragment (SupportMapFragment)
источник
Google выпустил исправление для этого, но только для 4.1+ (вам не нужно загружать новую версию PlayServices, они использовали флаг на стороне сервера)
Вот что я использую, чтобы обойти эту проблему - гарантирует, что вы не тратите циклы процессора на устройства> = 4.1.
источник
FixMapFragment mapFragment = (FixMapFragment) fragmentManager.findFragmentById(R.id.map);
и в файле макета:<fragment android:id="@+id/map" android:name="com.example.fragments.FixMapFragment" ...
. Хотя, насколько я могу судить, карта все еще мерцает (Android 4.0.4).Мое решение: использовать новый интерфейс снимков из GoogleMap и отображать снимок карты при прокрутке страницы.
Вот мой код для установки снимка (он находится в том же фрагменте, что и карта, называется FragmentMap.java):
Где «mapFragment» - это мой SupportedMapFragment, а «iv» - это ImageView (сделайте его match_parent).
И вот я управляю прокруткой:
Мой фрагмент с картой (FragmentMap) находится в позиции 1, поэтому мне нужно управлять прокруткой с позиции 0 до 1 и с позиции 1 до 2 (первое предложение if). getRegisteredFragment () - это функция в моем пользовательском FragmentPagerAdapter, в котором у меня есть SparseArray (фрагмент) под названием «registerFragments».
Таким образом, всякий раз, когда вы прокручиваете карту или с нее, вы всегда видите ее снимок. У меня это работает очень хорошо.
источник
У меня была такая же проблема с черным экраном при прокрутке представления списка, я использовал фрагмент карты с представлением списка на том же экране. Я решил эту проблему с использованием магического свойства в xml, где я говорю о представлении списка, просто мы должны поставить android: scrollingCache = "false". Моя проблема исправлена, попробуйте это свойство, чтобы ваши карты не отставали и не мерцали.
источник
Вы не предоставили много подробностей, поэтому я могу предложить лишь некоторые из них. У меня была аналогичная проблема, когда экран мигал между видами на пейджере. Оказалось, что mapView раздувается при первом переключении между страницами.
Для ясности у меня на пейджере было 3 страницы, и моя карта была последней страницей.
Чтобы решить эту проблему, я обнаружил, что установка количества страниц вне экрана на 2 (это сработало в случае выше), что при запуске моего фрагмента он загружал все представления сразу.
См. Http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit (int)
источник
Есть еще одно решение этой проблемы. Я показываю MapFragment внутри другого фрагмента. MapFragment динамически добавляется в FrameLayout.
Решение состоит в том, чтобы использовать frameLayout.setVisibility (View.Visible) и frameLayout.setVisibility (View.Gone) в событиях открытия и закрытия скользящего меню. Это не требует добавления дополнительного вида. И черная область полностью исчезла.
источник
Ни один из вышеперечисленных методов не помог мне, даже те, которые я нашел в другом месте. Наконец, я выбрал частичное решение. Я прослушиваю изменения страницы через onPageChangeListener ViewPager и скрываю карту, когда ее страница начинает прокручиваться, и аналогичным образом показываю ее снова, когда она перестает прокручиваться. Я также добавил белый вид, который будет отображаться при прокрутке.
источник
Просто скопируйте мой фрагмент карты в свой проект. И если у вас есть черные линии с ScrollView сверху и снизу, установленные для вашего ScrollView android: fadingEdge = "none"
}
источник