在RecyclerView中展示Google地图视图

4

我无法在RecyclerView中使用Google Map。我需要展示一张地图并进行一些配置。

<com.google.android.gms.maps.MapView
        android:id="@+id/map_view"
        android:layout_height="120dp"
        android:layout_width="match_parent"
        android:layout_marginTop="15dp"/>

My RecyclerView:

@Override
    public ShopInfoAdapter.ShopInfoViewHolder onCreateViewHolder(ViewGroup viewGroup) {
        View view = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.fragment_x, viewGroup,
                        false);
        MyHolder holder = new MyHolder(view);
        holder.mapView.getMapAsync(this);

        return holder;
    }

@Override
    public void onMapReady(GoogleMap googleMap) {
        if (mListener != null) {
            mListener.onMapClick(googleMap);
        }
    }

public interface ItemListener {
        void onMapClick(GoogleMap googleMap);
    }

注意:我已经实现了接口,问题并不在实现上。

1个回答

2
“地图”有两部分:一部分是您的设置,第二部分是标记。可以在适配器中设置标记并为其设置一些值,例如纬度/经度、信息窗口、wtc。
为您的回收视图制作自定义适配器,并在其中设置您的mapview小部件。可以从AsyncTask动态获取纬度/经度等值,并将每行具有地图小部件的正确数据提供给它们。
以下是RecyclerView的自定义适配器示例(包括添加、删除等操作)http://www.101apps.co.za/index.php/articles/android-s-recyclerview-and-cardview-widgets.html,地图视图就像其他任何小部件一样,可以在此设置。

这不是我想说的。我不想给地图设置监听器,我只想在RecyclerView中显示地图。 - Alex
1
然后在你的行内创建一个带有地图视图的自定义适配器。 - Mariano Zorrilla
我的适配器只有一行,而地图应该在被膨胀的布局内。因此,我不能也不应该为这样的事情再制作一个额外的适配器。 - Alex
RecyclerView 不会是你的小部件...请使用 CardView。CardView 与 RecyclerView 具有相同的 UI 方面,但 CardView 更像 LinearLayout/RelativeLayout,而 RecyclerView 更像 ListView/GridView。 - Mariano Zorrilla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接