0

アプリケーションで TabHost を使用しており、2 つの異なるタブに 2 つのマップを表示する必要があります。マップを統合できましたが、問題は、あるタブから別のタブに移動すると、マップがハング/スタックして応答しないことです。つまり、マップが画面の 1 つでしか機能しません。

以下は、TabHost を持つメイン レイアウトの xml とクラスです。

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:background="#ff0000" >

     <RelativeLayout     
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ff0000"
        >   
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#f00"
            android:foregroundGravity="top"
            android:layout_above="@android:id/tabs" 
          />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:layout_alignParentBottom="true"
            android:background="#fff"
           android:tabStripEnabled="false"
         >

         </TabWidget>
    </RelativeLayout>

</TabHost>

    package com.cotechnica.alps;

    import android.os.Bundle;
    import android.app.Activity;
    import android.app.TabActivity;
    import android.content.Intent;
    import android.content.res.Resources;
    import android.view.Menu;
    import android.widget.TabHost;
    import com.ankitkedia.alps.R;



    public class Main extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Resources res = getResources(); 
        TabHost tabHost = getTabHost(); 
        TabHost.TabSpec spec;  
        Intent intent;  

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, Map1.class);
        spec = tabHost.newTabSpec("home").setIndicator("Map1",
            getResources().getDrawable(android.R.drawable.star_on)).setContent(intent);
        tabHost.addTab(spec);


        // Do the same for the other tabs
        intent = new Intent().setClass(this, Map2.class);
        spec = tabHost.newTabSpec("rescue").setIndicator("Map2",
                getResources().getDrawable(android.R.drawable.star_big_off)
                ).setContent(intent);
        tabHost.addTab(spec);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    }

多くの人が同じ問題に直面しているのを見てきましたが、適切な解決策はありません。

必要に応じて、サンプル プロジェクトのソースをお送りします。

よろしく、アンキット

4

1 に答える 1

0

この人は素晴らしい解決策を持っています

http://www.ankitkedia.com/2013/07/07/android-google-map-v2-use-multiple-maps-in-application/

于 2013-08-07T05:28:11.133 に答える