我在视图寻呼机中集成了新的谷歌地图api v2片段.从地图片段滚动时,黑色视图与相邻片段重叠.有人解决了吗?
编辑:截图
public static class PagerAdapter extends FragmentPagerAdapter{
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
Fragment pageFragment;
switch (position) {
case 0:
pageFragment = new TabAFragment();
break;
case 1:
pageFragment = new TabBFragment();
break;
case 2:
pageFragment = SupportMapFragment.newInstance();
break;
default:
pageFragment = null;
break;
}
return pageFragment;
}
}
Run Code Online (Sandbox Code Playgroud) 我不想使用或扩展SupportMapFragment
或MapFragment
.我有自己的基类,里面有一堆代码.
文档清楚地指出,当有人单独使用时MapView
,onCreate()
onResume()
应调用所有相应的生命周期方法(等).
a中的大多数生命周期方法Fragment
都类似于a,Activity
但是当我在我之间来回切换时,我Fragment
最终会onDestroy()
在onResume()
方法中或方法中获得混淆的NPE .
所有样品提供使用Activity
了MapView
,但不是自定义Fragment
.
有人做过吗?你能提供MapView
自己Fragment
班级的样本代码吗?
有没有办法在不扩展MapActivity的情况下显示MapView?我有其他活动类,我正在扩展,我宁愿不改变...我已经看到你可以使用MapActivity膨胀,但没有找到任何规范/示例如何做到这一点.
我几个月前看过一些话题,关于在片段中使用(谷歌)MapView有点棘手/不可能的事实.我想知道atm(六月)是否有解决方法?我的应用程序(Android 3.0)基本上与Fragment系统一起工作,我需要在其中一个片段中显示一个地图.
我一直在寻找一段时间来找到一个很好的教程,其中包含用于ICS的Fragment中MapView的代码示例.
有人有任何链接吗?
我正在尝试使用片段在一组选项卡中显示地图.我遇到的问题是,如果用户导航到另一个片段然后返回,则地图活动会消失.如何在tabhost中以片段形式显示MapActivity?
其基础来自于如何将MapActivity与片段集成的众多问题(请参阅片段中的MapView(Honeycomb))
MainTabActivity有一个tabhost,并使用FragmentManager在选项卡中显示Fragments.MapFragment有一个tabhost,用它来显示MapActivity.
MapFragment确实使用LocalActivityManager将生命周期事件传播到包含的活动.
所以MapFragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.map_fragment, container, false);
mTabHost = (TabHost) view.findViewById(android.R.id.tabhost);
mTabHost.setup(getLocalActivityManager());
Intent intent = new Intent(getActivity(), MapActivityWrapper.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//does nothing
TabHost.TabSpec tab = mTabHost.newTabSpec("map")
.setIndicator("map")
.setContent(intent);
mTabHost.addTab(tab);
return view;
}
Run Code Online (Sandbox Code Playgroud)
MapFragment布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
MainTabActivity中用于更改选项卡内容的代码:
private void updateTab(String oldId, String tabId) …
Run Code Online (Sandbox Code Playgroud) 我有一个FragmentActivity
:
public class parking extends FragmentActivity { }
Run Code Online (Sandbox Code Playgroud)
它有3个选项卡,第二个和第三个是列表,已解决.
public class tab2 extends Fragment{ }
Run Code Online (Sandbox Code Playgroud)
但第一个是地图,所以,我无法扩展Fragment和a MapActivity
.
我该如何解决?
我正在使用View Pager来显示三个视图.
"Filter","Streets","Around"
Run Code Online (Sandbox Code Playgroud)
每个视图都由片段定义.
我想要什么: 我想在我的FilterFragment中使用Mapview.
我做了什么 :
我想使用MapView Inside Filter Fragment但无法成功运行.并获取日志错误:
android.view.InflateException: Binary XML file line #33: Error inflating class com.google.android.maps.MapView
我也搜索了关于这个问题的网络和Stackoverflow,发现了链接和链接,但无法找到与我的问题相关的链接,因为我正在使用ViewPager片段.
我把我的代码放在下面.
这是MainViewPager.java的My Code:
package com.example.viewpageractivitydemo;
import com.example.viewpageractivitydemo.viewpager.TitlePageIndicator;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
public class MainViewPager extends FragmentActivity {
TestFragmentAdapter adapter;
ViewPager pager;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
Log.i("MainViewPager","Inside Oncreate");
setContentView(R.layout.mainviewpager);
pager = (ViewPager) findViewById(R.id.pager);
adapter = new TestTitleFragmentAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
TitlePageIndicator indicator = (TitlePageIndicator) …
Run Code Online (Sandbox Code Playgroud) 如上所示,我有一个片段活动,可以产生两个片段.在地图片段我想要实现并显示地图.
由于我们需要扩展MapActivity,我不确定如何在片段内完成.
尝试从 (/sf/answers/751744031/)实施解决方案
package com.m7.nomad;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.Window;
public class MapsFragment extends SherlockFragment {
private static final String KEY_STATE_BUNDLE = "localActivityManagerState";
private LocalActivityManager mLocalActivityManager;
protected LocalActivityManager getLocalActivityManager() {
return mLocalActivityManager;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle state = null;
if (savedInstanceState != null) {
state = savedInstanceState.getBundle(KEY_STATE_BUNDLE);
}
mLocalActivityManager = new LocalActivityManager(getActivity(), true);
mLocalActivityManager.dispatchCreate(state);
}
@Override
public View onCreateView(LayoutInflater inflater, …
Run Code Online (Sandbox Code Playgroud)