如何在适配器内的列表视图项内添加地图片段?

2024-01-15

我有一个列表视图。我想在每个列表项中添加地图。当我单击列表项时,地图将显示/隐藏。当地图显示时,我可以在其上缩放、查看位置详细信息。但我无法在适配器中设置 MapFragment 。那么,给我一些解决方案。谢谢。

gMap = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
googleMap = gMap.getMap();

我不能在 getView 中这样做。


我刚刚经历了类似的问题,并提出了以下解决方案。顺便说一句,现在播放服务有谷歌地图精简版模式。

您可以在以下位置查看整个示例:https://github.com/vinirll/MapListView https://github.com/vinirll/MapListView

假设您有一个使用 BaseAdapter 的 ListView,因此您应该重写 getView 方法。这就是我的 getView 的样子:

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
    if ( convertView == null )
        convertView = new CustomItem(mContext,myLocations.get(position));

    return convertView;
}

其中类 CustomItem 是代表我的行的 FrameLayout。

public class CustomItem extends FrameLayout {

public int myGeneratedFrameLayoutId;

public CustomItem(Context context,Location location) {
    super(context);
    myGeneratedFrameLayoutId = 10101010 + location.id; // choose any way you want to generate your view id

    LayoutInflater inflater = ((Activity) context).getLayoutInflater();

    FrameLayout view = (FrameLayout) inflater.inflate(R.layout.my_custom_item,null);
    FrameLayout frame = new FrameLayout(context);
    frame.setId(myGeneratedFrameLayoutId);

    int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
    LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT,height);
    frame.setLayoutParams(layoutParams);

    view.addView(frame);

    GoogleMapOptions options = new GoogleMapOptions();
    options.liteMode(true);
    MapFragment mapFrag = MapFragment.newInstance(options);

    //Create the the class that implements OnMapReadyCallback and set up your map
    mapFrag.getMapAsync(new MyMapCallback(location.lat,location.lng));

    FragmentManager fm = ((Activity) context).getFragmentManager();
    fm.beginTransaction().add(frame.getId(),mapFrag).commit();

    addView(view);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在适配器内的列表视图项内添加地图片段? 的相关文章

随机推荐

  • CSS 缩小并用 gulp 重命名

    我有一个像这样的变量 var files foo css foo min css bar css bar min css 我想要吞咽为我做的是minify文件然后rename for me 但任务目前写为 对于一个文件 gulp task
  • numpy 数组中数字前的冒号

    我正在使用相机将原始数据存储在 numpy 数组中 但我不知道 numpy 数组中数字前面的冒号意味着什么 import numpy as np import picamera camera picamera PiCamera camera
  • Android:当url包含http时,在设置WebViewCore之前不支持removeMessages(int What = 107)

    我编写了一个简单的程序 它将网页加载到网络视图中 URL 包含 http 并且 Web 视图工作得很好 除了这个恼人的 107 错误之外 大多数人说这是因为你的 url 不包含 http 标头 我在网上搜索了所有内容 但找不到与我的情况类似
  • 如何显示完整的数组?

    我得到这个error 对象对象 对象对象 对象对象 我想像这样显示完整的数组 无名氏 安娜 史密斯 彼得 琼斯 h2 Create Object from JSON String h2 p p
  • 如何从函数返回 &Path?

    我试图了解如何编写正确的 Rust 代码 但我认为我可能高估了编译器理解对象生命周期的能力 这是我期望它工作的代码 use std path Path use std env use rusqlite SqliteConnection st
  • Vlookup复制单元格的颜色

    我有以下表格 A B C D 1 Bob 1 6 Football 2 Nate 3 7 Baseball 3 Silver 3 2 Baseball 4 Box 7 1 Cycling A D Bob Nate 我可以成功使用Vlooku
  • “TypeError:‘StratifiedShuffleSplit’对象不可迭代”的原因可能是什么?

    我必须交付一个机器学习项目 我收到了一个名为tester py 在另一个文件中编写完代码后 我必须运行 tester py 才能查看结果 但出现错误 TypeError StratifiedShuffleSplit object is no
  • mysql 选择内部限制

    select id from tableABC limit select count id from tableCBA 1 如果我需要在限制中进行选择 如我在示例代码中所示 我该如何在 mySql 中执行此操作 这只是本论坛的简化代码 否则
  • 设置 MaxTextWidth 时出现 WPF 字对齐问题

    我正在使用 FormattedText 来显示文本 我需要根据提供的选项水平对齐文本 一切正常 直到我设置 MaxTextWidth 属性 我需要它来进行文字修剪 如何在启用文字修剪的情况下对齐文本 FormattedText format
  • 我如何在 C# 中执行 sscanf

    我如何在 C 中执行此操作 int a b c sscanf astring d d d a b c 最少的代码和依赖项是更好的 是否有一些内置的正则表达式的东西 我正在使用 c 4 0 如果像 scannf 一样 您愿意假设用户将提供完全
  • 在 Xcode 中,如何在块内添加断点?

    我有一个返回块的方法 我想在块内添加一个断点 在 Xcode 中 在块内的行上添加断点会导致执行在方法返回时暂停 而不是在执行块时暂停 如何在块内添加断点 我遇到了同样的困难 直到我尝试使用 Xcode 4 的 LLDB 调试器 转到 产品
  • 如何在命令行中使用VLC保存视频流?

    我正在尝试在 Window 7 Basic 的命令行中使用 VLC 保存在线视频 以下是我尝试过并部分起作用的一些事情 I movies gt vlc http media ch9 ms ch9 7492 a92ae0a6 7b81 411
  • C 和 doxygen - 删除变量文档的重复项

    我正在使用 doxygen 记录我的 C 代码 为了更好的可读性 我将每个 c h 文件对 有时还有更多文件 的文档分组为defgroup and addtogroup see c 中的 doxygen 定义分组 https stackov
  • Actionscript 3可以在数组中设置对象的多个变量吗?

    现在我有很多MovieClips在我的数组中 我想更新所有alpha我的数组中 MovieClip 的值 现在 我正在使用 for 循环 但这不是最快的方法 有没有办法为数组中的所有项目设置值 Thanks No ActionScript没
  • 未捕获的类型错误:将 vue 升级到 3.x 后无法读取未定义的属性(读取“扩展”)

    今天我将我的 google chrome 扩展 vue 版本升级到 3 x 当运行该应用程序时 google chrome 扩展弹出控制台显示如下错误 commons1 js 13392 Uncaught TypeError Cannot
  • 在python中使用in运算符搜索列表时使用什么算法?

    当使用 in 运算符搜索列表中的项目时 例如 if item in list print item 使用什么算法来搜索该项目 是从头到尾直接搜索列表还是使用二分搜索之类的东西 list不能假定 s 是按排序顺序 或任何顺序 的 因此二分搜索
  • SHA256 哈希值总是有 64 个字符吗?

    我正在将数据库设置为接收散列密码而不接受纯文本 我会去这样的事情吗 create table User username varchar 20 not null password varchar 64 not null 是的 SHA256
  • 使用 Parcelable 是在应用程序之间发送数据的正确方法吗?

    我试图了解如何在 Android 中的应用程序之间进行通信 而不仅仅是在应用程序之间进行通信Activity实例 我设置了一个 客户端 将 Messenger 对象发送到服务 在Intent发送到服务 该服务创建了一个Messageobj
  • 调整 Dash-Plotly 中下拉菜单选项的宽度

    我正在尝试基于 Plotly 在 Python 中使用 Dash 构建一个应用程序 我很难调整下拉菜单选项的宽度 我在下面附上了代码和图像 我希望下拉选项的宽度与菜单宽度相同 app layout html Div children htm
  • 如何在适配器内的列表视图项内添加地图片段?

    我有一个列表视图 我想在每个列表项中添加地图 当我单击列表项时 地图将显示 隐藏 当地图显示时 我可以在其上缩放 查看位置详细信息 但我无法在适配器中设置 MapFragment 那么 给我一些解决方案 谢谢 gMap MapFragmen