1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Design überlagert sich

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von keinbrain, 12.04.2012.

  1. keinbrain, 12.04.2012 #1
    keinbrain

    keinbrain Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Hi, meine App besteht aus Layouts, welche jeweils durch einen Klick auf einen Tab eines TabHosts erscheinen sollen.

    Klick auf Tab1 -> 1 Layout erscheint
    Klick auf Tab2 -> 2 Layout erscheint usw. , 1 verschwindet

    Meine Ansatz war das ganze so zu gestalten : Der TabContent besteht aus 4 weiteren FrameLayouts, in denen sich jeweils 1 "include" (zum Aufrufen eines XML-Layouts im Layout) befindet.

    Der Include ist jeweils mit einem Layout für jeden Tab verlinkt.

    Soweit ist das hoffentlich verständlich.

    Als nächstes fragt tabHost.getCurrentTab(); in der .java File ab, welcher der 4 Tabs gerade gewählt ist (0, 1 , 2 oder 3) und speichert ihn in einer int Variable (ct) .

    Dann wird mit

    Code:
    if (ct == 0){    
                ChangeLayout1();
            }
            if (ct == 1){    
                ChangeLayout2();
            }
            if (ct == 2){    
                ChangeLayout3();
            }
            if (ct == 3){    
                ChangeLayout4();
            }
    
    eine Methode aufgerufen , welche , je nachdem welcher Tab gewählt ist, das zugehörige Layout auf Visible setzen soll bzw. die anderen 3 auf GONE .

    Einer der 4 Codeschnipsel :

    Code:
    
    private void ChangeLayout1() {
            FrameLayout Layout1 = (FrameLayout)findViewById(R.id.lay_1);
            FrameLayout Layout2 = (FrameLayout)findViewById(R.id.lay_2);
            FrameLayout Layout3 = (FrameLayout)findViewById(R.id.lay_3);
            FrameLayout Layout4 = (FrameLayout)findViewById(R.id.lay_4);
            
            // Aktiviere L1 und deaktiviere  L2 L3 L4
            
            Layout1 .setVisibility(View.VISIBLE);
            Layout2.setVisibility(View.GONE);
            Layout3.setVisibility(View.GONE);
            Layout4.setVisibility(View.GONE);
            }
    
    
    Ich hab jetzt irgendwie gedacht dieser Code wäre absolut robust und würde 100 % funktionieren.

    Leider habe ich 2 Probleme mit dem Design :

    1. Das Layout wird 2 mal angezeigt, 1 davon ist über ein Scrollview beweglich, dass andere, welches genau auf dem anderen liegt (ist das gleiche Layout!) ist nicht beweglich .

    Ich hab leider keine Ahnung wieso das Layout 2 mal erscheint, es wird nur 1 mal aufgerufen.

    2. Die Rahmen des FrameLayouts tabcontent, des Framelayouts lay1 und des include , welche sich alle in einander befinden, sind zusammen so dick, das ein großteil des Platzes für den eigentlichen Inhalt verloren geht.
    Wie kann ich den Rahmen ausblenden?

    Tut mir leid das die Schilderung des Problems so lange ist, aber ich brauche unbedingt eine Lösung, ich hab die letzen 2 Tage nur an diesem Thema gearbeitet.

    Vielen Dank im Vorraus :)
     
  2. keinbrain, 13.04.2012 #2
    keinbrain

    keinbrain Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Hilfe? :/
     
  3. keinbrain, 13.04.2012 #3
    keinbrain

    keinbrain Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Hat echt niemand ne idee an was das liegen könnte?
     

Diese Seite empfehlen