Design überlagert sich

keinbrain

keinbrain

Erfahrenes Mitglied
21
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 :)
 
Hilfe? :/
 
Hat echt niemand ne idee an was das liegen könnte?
 

Ähnliche Themen

M
Antworten
3
Aufrufe
167
moin
M
SpeedySix
Antworten
13
Aufrufe
1.401
jogimuc
J
H
  • HerrFatalVonError
Antworten
10
Aufrufe
1.256
HerrFatalVonError
H
Zurück
Oben Unten