Google Map Lite en CardView

He estado intentando conseguir una aplicación muy básica que va a jugar alrededor con diseño material. Estoy tratando de crear un Listview (con el nuevo RecyclerView) en cada elemento es una tarjeta de bruja tiene un Google Maps Lite en él.

He estado básicamente siguiendo este ejemplo: Crear listas y tarjetas , para la implementación de Google Maps he estado utilizando este ejemplo

Cada cosa "funciona" cuando tengo sólo un elemento en el adaptador (por lo que sólo hay un elemento para mostrar), pero cuando agrego un segundo elemento al adaptador (por lo que debe haber dos elementos en la lista) la aplicación se bloquea con el excepción:

21158-21158/lollipop.auxilium.nl.lollipoptest E/AndroidRuntime﹕ FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #21: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719) at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) at android.view.LayoutInflater.inflate(LayoutInflater.java:498) at android.view.LayoutInflater.inflate(LayoutInflater.java:398) at lollipop.auxilium.nl.lollipoptest.MyAdapter.onCreateViewHolder(MyAdapter.java:63) at lollipop.auxilium.nl.lollipoptest.MyAdapter.onCreateViewHolder(MyAdapter.java:25) at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:4121) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3431) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3340) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1810) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1306) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1269) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:523) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:1988) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:2237) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531) at android.widget.LinearLayout.onLayout(LinearLayout.java:1440) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531) at android.widget.LinearLayout.onLayout(LinearLayout.java:1440) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15204) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2260) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2007) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6364) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791) at android.view.Choreographer.doCallbacks(Choreographer.java:591) at android.view.Choreographer.doFrame(Choreographer.java:561) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang. 

Puede alguien decirme lo que estoy haciendo mal?

Aparte del error, no puedo imaginar cuál sería la mejor manera de establecer propiedades en los mapas individuales (centro y cosas). La ayuda en esa área también sería muy apreciada.

Implementación para referencia:

Actividad

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); mRecyclerView = (RecyclerView) rootView.findViewById(R.id.main_recycler_view); mLayoutManager = new LinearLayoutManager(context); mRecyclerView.setLayoutManager(mLayoutManager); ArrayList<String> data = new ArrayList<>(); data.add("Toeter"); mAdapter = new MyAdapter(data, getChildFragmentManager()); mRecyclerView.setAdapter(mAdapter); return rootView; } 

MyAdapter

 @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.card, parent, false); ViewHolder vh = new ViewHolder(v); return vh; } 

ViewHolder

 public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View v) { super(v); } } 

Intente usar MapView en lugar de MapFragment:

Item.xml:

 <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" app:cardCornerRadius="4dp"> <com.google.android.gms.maps.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="148dp" app:liteMode="true" app:mapType="normal" /> </android.support.v7.widget.CardView> 

RecyclerAdapter.java:

 public ViewHolder(View itemView) { super(itemView); mapView = (MapView) itemView.findViewById(R.id.map_view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.mapView.onCreate(null); holder.mapView.getMapAsync(this); } 

Recuerde implementar OnMapReadyCallback en RecyclerView.Adapter .

Simone

Intente agregar los fragmentos en tiempo de ejecución, utilizando nuevo MapFragment () y así sucesivamente. He sido corriendo en problemas con este error a menudo, al inflar el fragmento de mapa más de una vez desde el mismo diseño. Problema extraño

  • Android java onClick No se pudo ejecutar el método de la actividad
  • Android RecyclerView crea y enlaza todas las vistas en el cambio de conjunto de datos
  • ¿Cómo utilizar ItemAnimator en un RecyclerView?
  • Estilo de RecyclerView a nivel de tema
  • Recycler View Con Gridlayout Manager
  • RecyclerView RecyclerViewDataObserver no estaba registrado
  • Disposición de Android: Recyclerview horizontal dentro de una Recyclerview vertical dentro de un Viewpager con comportamientos de desplazamiento
  • (Smooth) ScrollToPosition no funciona correctamente con RecyclerView
  • AppBarLayout no siempre vuelve a entrar en desplazamiento hacia abajo
  • RecyclerView 23.2.x height = 0dp hace que onBind llame a todos los elementos y scrollToPosition no funciona
  • Descripción de RecyclerView.ViewHolder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.