【问题标题】:google maps v2 not working inside tab谷歌地图 v2 在标签内不起作用
【发布时间】:2014-01-08 12:24:01
【问题描述】:

我创建了一个显示谷歌地图的应用程序。它是通过扩展 Activity 类创建的。 但现在我希望地图显示在一个选项卡上。这是我的主要活动课。 我创建了 3 个选项卡。我想在点击第一个标签时显示地图。

public class MainActivity extends FragmentActivity implements ActionBar.TabListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Adding Tabs
        for (String tab_name : tabs)
        {
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));

        }

    }

这是地图片段的代码

public class MapFragment extends Fragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.fragment_map, container, false);

        return rootView;

    }
}

这是 fragment_map.xml 的代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MapActivity" >

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    class="com.google.android.gms.maps.MapFragment" />

<ProgressBar
    android:id="@+id/speedbar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="250dp"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/map"
    android:layout_weight="1" />

<EditText
    android:id="@+id/speed_text"
    android:layout_width="71dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/speedbar"
    android:ems="10"
    android:enabled="false" >

    <requestFocus />
</EditText>

当我执行上面的代码时,它说

android.view.InflateException: Binary XML file line #9: Error inflating class fragment

【问题讨论】:

    标签: android android-fragments google-maps-api-2


    【解决方案1】:

    您的活动应该扩展Activty,因为您使用的是MapFragment

    你还有getSupportFragmentManager()

    如果你的目标是 11 级及以下的 API,你应该使用 SupportMapFragment 扩展 FragmentActivity 并使用支持库

    如果没有切换到MapFragment

    另外,如果你想在 Fragment 中显示地图,你应该使用MapView

    http://developer.android.com/reference/com/google/android/gms/maps/MapView.html

    你可以参考一下

    Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment

    【讨论】:

    • 不能像使用选项卡和片段一样使用 activty 扩展它。
    • @user2504985 然后使用SupportMapFragment。我建议考虑导航抽屉而不是标签
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多