2 Stimmen

Tab-Inhalte überlappen in der Android-Anwendung

Ich habe eine TabActivity, um zwei Listen anzuzeigen, eine Liste in jedem Tab. Beim Starten der Anwendung werden die Inhalte der beiden Tabs überlappend angezeigt. Aber wenn der andere Tab ausgewählt wird, funktioniert es richtig. Bitte helfen Sie mir

Mein Code ist:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.tab_layout);
    Resources res = getResources(); // Ressourcenobjekt zum Abrufen von Drawables
    tabHost = getTabHost();
    tabHost.setOnTabChangedListener(this);

    // Listview 1 einrichten
    listView1 = (ListView) findViewById(R.id.list1);

    // Listview 2 einrichten
    listView2 = (ListView) findViewById(R.id.list2);

    // Ansichten dem Tab-Host hinzufügen
    tabHost.addTab(tabHost.newTabSpec(LIST1_TAB_TAG).setIndicator(LIST1_TAB_TAG,
            res.getDrawable(R.drawable.rupees)).setContent(new TabContentFactory()
    {
        public View createTabContent(String arg0)
        {
            return listView1;
        }
    }));
    tabHost.addTab(tabHost.newTabSpec(LIST2_TAB_TAG).setIndicator(LIST2_TAB_TAG,
            res.getDrawable(R.drawable.food)).setContent(new TabContentFactory()
    {
        public View createTabContent(String arg0)
        {
            return listView2;
        }
    }));
    // Listener für List1 festlegen
    listView1.setOnItemClickListener(new OnItemClickListener()
    {
        public void onItemClick(AdapterView parent, View view, int position, long id)
        {
            onListItemClick(id);
        }
    });
    // Listener für List2 festlegen
    listView2.setOnItemClickListener(new OnItemClickListener()
    {
        public void onItemClick(AdapterView parent, View view, int position, long id)
        {
            onListItemClick(id);
        }
    });
    listView2.setVisibility(View.INVISIBLE);
}

0voto

blarf Punkte 91

Die Schlussfolgerung, zu der ich kam, war, dass der TabHost davon ausgeht, dass alles bereits unsichtbar ist. Wenn Sie den anfänglichen Tab auswählen, wird er ihn lediglich anzeigen. Daher sollten Sie alle Ihre Ansichten auf unsichtbar setzen. Ich habe einfach die Ansicht (in meinem Fall vorerst nur ein einfaches TextView) unsichtbar gesetzt, bevor ich die entsprechende TabContentFactory erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X