- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个在 fragment 上显示 map 的应用程序。一切都已准备就绪,但有一点小事情让我无法完成。
gMapFragment.java:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class gMapFragment extends Fragment implements OnMapReadyCallback {
public gMapFragment() {
// Required empty public constructor
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_map, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
MapFragment fragment = (MapFragment) getChildFragmentManager().findFragmentById(R.id.map);
fragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
LatLng marker = new LatLng(46.33328, 15.38173);
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(marker,13));
googleMap.addMarker(new MarkerOptions().title(("HERE WE ARE!")).position(marker));
}
}
我从另一个框架中的按钮调用这个 fragment ,这是调用它的方法:
public void onClick(View view) {
Fragment fragment = null;
switch (view.getId()) {
case R.id.SearchButton:
fragment = new gMapFragment();
replaceFragment(fragment);
break;
}
}
public void replaceFragment(Fragment someFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, someFragment);
transaction.addToBackStack(null);
transaction.commit();
}
我收到错误“gMapFragment 无法转换为 fragment ”知道如何解决此问题吗?谢谢!
最佳答案
首先,确保您的 Fragment 导入保持一致。在所有类中使用 import android.app.Fragment
或在所有类中使用 import android.support.v4.app.Fragment;
。不要混合搭配。
然后,将其添加到 Activity 中:
public void openMapFragment() {
Fragment fragment = new gMapFragment();
replaceFragment(fragment);
}
//moved to Activity from the Fragment
public void replaceFragment(Fragment someFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, someFragment);
transaction.addToBackStack(null);
transaction.commit();
}
然后,在 Fragment onClick()
方法中,调用 Activity 来执行 FragmentTransaction:
public void onClick(View view) {
switch (view.getId()) {
case R.id.SearchButton:
MainActivity activity = (MainActivity) getActivity();
if (activity != null) {
activity.openMapFragment();
}
break;
}
}
关于java - fragment 上的 MapFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595860/
我想制作一个使用 Google Maps for Android v2 的 Android 应用程序。 我可以显示一张 map 。我什至可以导航和缩放。但是,当我想搜索要进行的更多操作时,我找不到任何
我正在按照本教程制作抽屉导航: https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer 我的 fragme
我一直在Navigation Drawer Activity 中工作,它有很多 fragment ,其中一个 fragment 包含MapFragment。 现在 MapFragment 中出现问题,
我的应用程序中有一个 MapFragment 和常规 fragment 。问题是当我在 fragment 之间切换时,MapFragment 在后台。我有代码来查找 MapFragment 是否存在,
我遇到了以下错误 Skipped 40 frames! The application may be doing too much work on its main thread. 对此进行了研究.
我有一个包含 MapFragment 的 View 我的 mainViewPanel 看起来像这样 我的翻译代码是这样的 TranslateAnimation anim = new Transl
我想知道实现带抽屉导航的 MapFragment 的正确方法是什么。我已经可以很好地工作了,但我一直在阅读一些文档,也许它会在未来造成麻烦。 所以,我实现了抽屉导航的主类是一个非常普通的类,具有以下
将 MapFragment 与操作栏菜单一起使用时,我遇到了性能问题。 当满足三个条件时就会出现错误 实例化一个 MapFragment。 从选项菜单触发 fragment 事务,用另一个 fragm
我正在尝试构建一个将实现操作栏选项卡的应用程序。其中一个选项卡应包含一个 MapFragment。 如何实现带有选项卡的操作栏,其中一个选项卡下方是 map fragment ? 你能帮我解决这个问题
我正在使用 MapFragment,我的 Activity 布局是这样的: 如果我想使用 CameraUpdateFactory.newLatLngBounds(LatLngBounds, padd
我正在尝试将我的 ActionBar 迁移到 AppCompat 21 方式(使用设置为用作 ActionBar 的工具栏小部件),但它没有显示或被 MapFragment 隐藏。 这是我的 Acti
我有一个位置类,它在 MapFragment 上创建一个实例,并且根据创建 map 的 Activity ,将放置不同的标记。我还希望 map 显示手机当前位置的标记。 我假设我可以做这样的事情,但我
我正在尝试使我的 map 应用程序重定向到位置权限设置,一旦授予权限,就会再次重定向到应用程序。由于某种原因,我的 onActivityResult 在启动 Activity Intent 后甚至没有
我目前正在调整 Google Map MapFragment View 的大小(从全屏高度到半屏)。我使用 ValueAnimator 来实现此目的,但动画在设备 (Nexus 6p) 上似乎滞后。我
我有一个使用 Google map fragment 的应用程序,我想以某种方式设置用户可以使用 map fragment 中提供的 +/- 图标达到的缩放级别限制。 有什么已知的方法可以做到这一点吗
有没有什么方法可以在不使用 XML 的情况下以编程方式将 Button 添加到 MapFragment 或直接添加到 GoogleMap 对象? 谢谢! 最佳答案 当然有,当然不是直接到 map fr
我有一个 Activity 和 MapFragment 类。我在 Activity 中创建了 MapFragment 对象。当我尝试获取 mapFragmentObject.getView() 时,它
我正在尝试在 Android Studio 中显示来自 ArcGis 的 MapView。为此,我正在使用 Map Fragments,我将 Map 和其他 UI 内容放入 xml 中。将 MapVi
我正在尝试在 PagerAdapter 中加载 Mapfragment。这是适配器代码, public class ShopPagerAdapter extends PagerAdapter {
我查看了文档,但找不到 MapFragment 只显示左下角带有 Google Logo 的灰色屏幕的任何原因。在我的 list 中,我有应用程序级别的适当元数据(GMS 版本号和 api key )
我是一名优秀的程序员,十分优秀!