2017-08-29 2 views
0

Ich habe ein Telefon Android-Anwendung, die funktioniert und jetzt möchte ich eine Version für Tablet entwickeln. Nach den Recherchen, die ich gemacht habe, kann ich nur ein Projekt dafür behalten, ich muss "nur" unterschiedliche Bildschirmgrößen mit mehreren Layouts und Zeichnungsdateien handhaben.Aktivität für Tablet und Telefon Layout

jedoch nicht klar, für mich ist, wenn ich zum Beispiel 2-Layout für meine Homepage (eines für jedes Gerät) habe, muß ich 2 Aktivitäten entwickeln? Oder kann ich nur eine Aktivität haben, in der ich feststellen kann, welches Layout geladen ist und was ich in meiner if/else-Filiale mache?

Bitte beachten Sie, dass meine Layouts sehr unterschiedlich sind, zum Beispiel für die Tablet-Version I DrawerLayout bin mit einem Kasten haben, während ich nicht für Handy-Version zu tun.

+0

Sie brauchen nicht eine Aktivität pro Screen-Unterstützung zu entwickeln (Tablet/Telefon) wählt das Android Operative System automatisch das entsprechende XML aus, das zur Auflösung des Geräts passt, aber Sie müssen aufpassen, dass die View-Bindung den View-Typ der Views respektiert ID-Name in beiden Layouts. –

Antwort

1

Wenn ich zum Beispiel 2 Layouts für meine Homepage (eine für jedes Gerät) habe, muss ich 2 Aktivitäten entwickeln?

Nr Wenn Sie zwei verschiedene Versionen Ihres Layout haben (vielleicht ein in layout/ und eine andere in layout-sw600dp/), wird das System automatisch die richtige für Sie.

Oder kann ich nur eine Aktivität haben, in der ich feststellen kann, welches Layout geladen ist und meine Sachen in if/else verzweigen?

Dies ist in etwa das, was normalerweise getan wird, nur Sie müssen nicht oft ein if/sonst überall tun.

Sie erwähnen, dass Sie Ihr Tablet Layout DrawerLayout verwenden werden und das Telefon Layout nicht. Das heißt, Sie Code wie folgt schreiben:

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer); 

if (drawer != null) { 
    // set up drawer for tablets 
} 

Der findViewById() Aufruf erfolgreich zurückkehren wird Ihr DrawerLayout, wenn das System den Tablet-Layout ausgewählt hat, und es wird null zurück, wenn das System Ihre Telefon Layout ausgewählt hat.

Wenn es jedoch eine Ansicht ist, dass Sie wissen, in beide Ihr Telefon und Tablet-Layouts vorhanden ist, können Sie es einfach direkt verwenden:

TextView textView = (TextView) findViewById(R.id.text); 
textView.setText("hello world"); 
Verwandte Themen