Phone und Tablet layout

  • Hallo liebe Community,


    ich habe ein kleines Verständnisproblem.
    Ich möchte das meine App automatisch entscheidet ob ein Tablet sie benutzt oder ein Smartphone. Dafür habe ich für ein und die selbe Activity, zwei Layout files angelegt. Das eine liegt in layout und das andere in layout-large. Das Smartphone soll einen Viewpager nutzen mit 7 Fragmenten und braucht deshalb einen ViewPagerAdapter. Das Tablet hat auf der linken seite eine ExpandableListView und auf der rechten Seite das jeweils ausgewählte Fragment. Wegen der ExpandableListView braucht das Tablet-Layout einen ListViewAdapter.


    Mein Verständnisproblem ist jetzt, wie entscheide ich sauber in dieser einen Activity, welche Views gesetzt werden und das ganze möglichst redundanzarm.


    Wäre cool wenn ihr paar Ideen hättet.


    LG. :)

  • Achja, unsauber wäre meiner meinung nach wenn ich in der activity die screengröße auslese bzw. über einen hack herausfinde ob es tablet oder phone ist und dann je nachdem eine andere activity integriere.
    Wenn Android entscheiden kann welche XML gewählt werden soll, wärs cool wenn Android dann auch die Activities unterscheiden könnte.

  • Ja Klaro, aber das hat für mein design so nicht gepasst ;)


    unter tablet wollte ich links eine liste und rechts das fragment.
    unter phone wollte ich einen viewpager haben.
    das würde so also nicht 100% passen.


    aber nach einigen beiträgen bei stackoverflow habe ich leider gemerkt dass das was ich vor hatte so nicht umsetzbar ist.
    ich wollte für eine activity 2 xml, nur war mein layout zu komplex. Das geht nur wenn die gleichen layout komponenten genutzt werden, ich nutze aber halt einmal eine list und einmal einen viewpageadapter für die navigation.


    Meine lösung ist nun einfach das ich in den Ressourcen überprüfe ob es ein phone oder ein tablet ist und dann lade ich je nachdem die phoneActivity oder die TabletActivity

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!