【问题标题】:mapView inside cardview not load the mapcardview里面的mapView不加载地图
【发布时间】:2020-09-29 00:08:36
【问题描述】:

在我点击 mapView 之前,CardView 中的 mapView 不会加载(大约 8 次以完成完整地图的加载)

查看我的图片。我点击了 8 次的第一张卡片视图。第二个我没有点击,它没有加载任何东西

我的一些card_layout.xml

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/card_view"
        android:layout_margin="5dp"
        card_view:cardBackgroundColor="#ffffff"
        card_view:cardCornerRadius="3dp"
        card_view:cardElevation="3dp"
        card_view:contentPadding="4dp"
        android:foreground="?selectableItemBackground"
        android:clickable="true" >
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="16dp">
    
            <com.google.android.gms.maps.MapView
                android:id="@+id/mapView"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/item_image"
                android:layout_marginTop="15dp"
                android:layout_weight="1" />    
    
        </RelativeLayout>
    
    </android.support.v7.widget.CardView>

我的一些 RecyclerAdapter.java

@Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {

        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.card_layout, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);

        return viewHolder;

    }   


    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        viewHolder.itemTitle.setText(titles[i]);
        viewHolder.itemDetail.setText(details[i]);
        viewHolder.itemImage.setImageResource(images[i]);

        viewHolder.mp.onCreate(null);
        viewHolder.mp.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                mMap = googleMap;
                mMap.getUiSettings().setZoomControlsEnabled(false);
                double lat1 = Double.parseDouble("1.344376");
                double lng1 = Double.parseDouble("103.862162");
                LatLng bord = new LatLng(lat1, lng1);
                mMap.addMarker(new MarkerOptions().position(bord).title("Marker on board"));
                mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(bord, 13.0f));
             }
        });
        viewHolder.mp.postInvalidate();

    }

希望你能帮忙。

【问题讨论】:

  • 分享你的布局文件
  • 你的java文件请。
  • 尝试在加载地图时更改地图视图的缩放级别。
  • @FYS 你可以在这里粘贴布局代码以及你的java文件的代码,以便有人指出你的错误。
  • 只需添加请检查。

标签: android


【解决方案1】:

查看在 RecyclerView 使用 lite Map 的示例。

样本 - https://github.com/googlemaps/android-samples/blob/master/ApiDemos/java/app/src/main/java/com/example/mapdemo/LiteListDemoActivity.java

仔细检查“constructor”“onMapReady”“bind”“onViewRecycled”方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-15
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多