- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题已解决。进一步向下滚动!
我目前正在编写一个具有抽屉导航的应用程序。我想要其中一个 fragment 中的 map 。
要在抽屉导航中的 fragment 之间切换,我有这个 Switch case:
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new SupportMapFragment();
break;
case 1:
fragment = new PlacesFragment();
break;
case 2:
fragment = new LogbookFragment();
break;
case 3:
fragment = new SettingsFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
这是我的 map fragment :
public class MapFragment extends SupportMapFragment {
private GoogleMap map;
public MapFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_map, null, false);
map = ((SupportMapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
return v;
}
问题是我无法切换到 mapfragment。我试图修改 Swich 外壳,但我无法让它工作。例如,我无法使用方法 replace() 来处理 SupportMapFragment。
有人可以帮我解决我的问题吗?
谢谢。
编辑:更新了代码。还是不行。
案例 0 的错误:“类型不匹配:无法从 SupportMapFragment 转换为 Fragment”
。
编辑 2:问题已解决! 最大的错误是我导入了错误的 fragment 。正确的导入是 android.support.v4.app.Fragment
和 android.support.v4.app.FragmentManager
。当我解决这个问题时,我不得不在我有抽屉导航的主要 Activity 中更改一些东西。
修复之后, map 可以正常工作,但是当我通过抽屉导航切换 fragment 并返回时,应用程序崩溃了。我通过一些变通解决了这个问题。我在此下方发布更新的代码。
这是内容更新和 fragment 相互替换的地方。
private void displayView(int position) {
// update the main content by replacing fragments
android.support.v4.app.Fragment fragment = null;
switch (position) {
case 0:
fragment = new PlacesFragment();
break;
case 1:
fragment = new MapFragment();
break;
case 2:
fragment = new LogbookFragment();
break;
case 3:
fragment = new SettingsFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
这是带有 map 的 fragment 。
公共(public)类 MapFragment 扩展 fragment {
private GoogleMap map;
public MapFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_map, null, false);
map = ((SupportMapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
return v;
}
@Override
public void onDestroyView() {
SupportMapFragment f = (SupportMapFragment) getFragmentManager()
.findFragmentById(R.id.map);
if (f != null) {
try {
getFragmentManager().beginTransaction().remove(f).commit();
} catch (Exception e) {
e.printStackTrace();
}
}
super.onDestroyView();
}
“onDestroyView”方法解决了我的崩溃问题。
最佳答案
针对情况 0 试试这个:
fragment = new MapFragment();
因为您正在扩展 SupportMapFragment(它扩展了 fragment )
关于android - 使用 NavigationDrawer 在 Fragments 和 MapFragment 之间切换 *已修复*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478475/
我看到很多关于在导航栏顶部设置半透明状态栏的问题,如下所示: 但我想要实现的是拥有一个非半透明状态栏,并使抽屉导航标题 View 与操作栏高度相同。这适用于前 Lollipop 设备 (API 21
这是我的代码: 主 Activity package com.pa.homeautomationblank; import android.app.Activity; import android.a
我在旋转菜单时在抽屉导航中动态(以编程方式)创建子菜单时遇到问题。我的导航 View 菜单 xml 仅包含主菜单(见下文)。调用 onCreate 事件时添加子菜单。一切正常,直到我旋转屏幕 - 子菜
我找不到实现非常自定义的 NavigationDrawer 的解决方案。我希望它有一个图像背景(黑色的一个带有白色方 block ),只有很少的项目,如下图所示: 可以制作吗?据我所知,这并不是 SD
我想要的是一个与下面设计中的主要内容无缝连接的 NavigationDrawer: 不知怎么的,我无法从抽屉里取出影子。 我试过的是这样的: drawer.setScrimColor(Color.TR
请帮我创建Toolbar,@+id/left_drawer 上面有哪些内容?是否可以?
是否可以将 NavigationDrawer 用作从上到下而不是从左到右的菜单? 最佳答案 这是 umano 应用的向上滑动面板,我在我的应用中使用了它,您可以轻松地将它转换为从上到下 https:/
我有 NavigationDrawer Activity 。当我单击 ActionBar 中的图标时,NavigationBar 打开,但有滞后。与关闭相同。我使用了本教程:https://www.y
我有一个带有此代码的抽屉导航: mDrawerListView.setAdapter(new ArrayAdapter( getActionBar().getThemedCon
我找不到使用 NavigationDrawer 轻松进行平板电脑多 Pane 布局的方法。 Play 音乐应用可以做到这一点。 我使用了 LOCK_MODE_LOCKED_OPENED 但它会按预期打
我想在我的 Android 项目中有一个 NavigationDrawer,它始终部分显示 ListView,并且这些项目也是可点击的,但是当用户拖动抽屉时,会出现完整的 ListView。 下图是我
根据 Google 指南,建议您仅在安装并打开应用程序后第一次打开 DrawerLayout(向用户展示功能)。 你会怎么做? 它似乎是 openDrawer() 方法与某种偏好的组合。 最佳答案 为
我的 DrawerLayout 设置在两边都有一个抽屉 当某个方法运行时,右边的抽屉会被填充,但是,在该方法运行之前,我可以从右侧滑动,屏幕变暗但什么也没有显示(因为在该方法运行之前布局是空的)。
我对包含两组的菜单有疑问。这种情况是当我从 group_2 中选择任何项目时,从 group_1 中最后选择的项目保持选中/突出显示。 有什么解决办法吗? 抽屉 View .xml:
我一直在尝试解决我遇到的问题,即我无法通过从右向左滑动来关闭 NavigationDrawer,但没有成功。通过从屏幕的左边缘向右滑动来打开它可以正常工作。我目前只是试图合并来自 developer.
我正在将我的应用程序更新为导航架构组件,并且我看到它有一个延迟替换 fragment ,这些 fragment 在 NavigationDrawer 中可见,并且不能顺利关闭。 到目前为止,我一直
我实现了一个基本的navigationDrawer,其中包含一个字符串数组。我希望用户单击列表中的某些内容并转到相应的Activity。然而,我在这里完全不知所措。我已经在这里阅读了很多答案,但仍然不
我创建了一个空 Activity ,然后将其更改为 DrawerLayout,每次打开菜单并单击某个项目时,抽屉都会关闭,但什么也没有发生,就像我只是打开和关闭它一样,无法执行任何其他操作. 这是布局
我是一名 Android 初学者。我正在使用 Android Studio,并使用 NavigationDrawer 创建我的 Activity 。所以我有一个 ListView,但我想向我的抽屉添加
我创建了 NavigationDrawer 类,现在我正在创建扩展抽屉导航类的新 Activity 。不幸的是我经常遇到这样的错误: java.lang.IllegalStateException:
我是一名优秀的程序员,十分优秀!