首页 > 解决方案 > 以编程方式在 viewpager 内的 SupportMapFragment 上的按钮

问题描述

我正在为一些非常简单的事情而苦苦挣扎。(或者至少这是我的想法..)

我需要在 viewpager 内的地图顶部放置一个简单的按钮。

实际上,我正在以编程方式创建 supportmapfragment 并将其添加到 crated viewpager adapter 中。

    ViewPagerAdapter adapter = new ViewPagerAdapter
            (getSupportFragmentManager());

   mapFrag =  new SupportMapFragment();
   mapFrag.getMapAsync(this);

   adapter.addFragment(mapFrag, getString(R.string.maptab));

现在...要在顶部放置一个按钮,我需要来自 supportmapfragment 的视图,这样我就可以通过 addview 向上推“我的按钮_”。

我无法理解如何在不扩展 supportmapfragment 类的情况下检索视图,但这需要我创建一个自定义 supportmapfragment 类。

任何想法?

建议后:我用相对布局做了一个测试:

<fragment
    android:id="@+id/rlMap"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


</fragment>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Button 1"/>

这个 make 按钮出现一秒钟(在地图加载之前),然后被 map 发现。甚至将按钮放在片段排序相同的效果

标签: javaandroid

解决方案


即使您尝试将按钮放在片段的视图上,您​​仍然需要设置一个单击侦听器并在按下它时执行一些逻辑。我认为这会使现有代码有点混乱,将片段的职责(注册按钮单击侦听器)传递给活动。

如果我是你,我会做什么创建一个新Fragment的,其中ConstraintLayout包含底层地图和按钮(但不扩展SupportMapFragment)。这将是一个包装片段,您还可以在其中处理按钮及其事件,以及更多需要的东西。


推荐阅读