gpt4 book ai didi

android - 如何在适配器内的 ListView 项内添加 mapfragment?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:25 26 4
gpt4 key购买 nike

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

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

我不能在 getView 中这样做。

最佳答案

我刚刚遇到了类似的问题,并提出了以下解决方案。顺便说一下,现在 play 服务有 google map lite 模式。

您可以在以下位置查看整个示例: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);
}

关于android - 如何在适配器内的 ListView 项内添加 mapfragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com