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
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 :
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
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