web-dev-qa-db-ger.com

Erstellen eines anderen Layouts für Android-Telefone und -Tablets

Dies ist eine grundlegende Android-Frage. Ich habe eine App, die unterschiedliche Bildschirmdesigns für ein Telefon und ein Tablet haben muss. Das Telefon muss über eine ListView verfügen, und das Tablet muss über eine GridView der Elemente verfügen. 

Ich möchte wissen, wie ich dies tun kann, ohne zwei verschiedene Apps zu erstellen.

Vielen Dank

22
user3713706

Grundsätzlich müssen Sie unterschiedliche Layouts für Android-Handys und Tablets erstellen. Android ist intelligent genug, um sich zu unterscheiden. Für große Bildschirme können Sie beispielsweise einen neuen Ordnernamen mit Layout-Größe erstellen. und legen Sie Ihre Tablette xml hinein. Android wählt hier XML aus und im Falle eines Telefons wird es aus einem einfachen Layoutordner ausgewählt .. Die Konfigurationsqualifizierer, die Sie zum Bereitstellen größenabhängiger Ressourcen verwenden können, sind klein, normal, groß und groß. Zum Beispiel sollten Layouts für einen besonders großen Bildschirm in layout-xlarge/gehen.

Ich würde empfehlen, wenn sowohl Telefon- und Tablet-Bildschirme als auch völlig unterschiedlich sind, können Sie zwei verschiedene apks erstellen und auf dieselbe Id auf google play laden. Auf diese Weise wird Ihre Anwendung leicht und schnell sein. Google Play erkennt automatisch, dass die Anwendung für Tablets oder Telefone bestimmt ist. Sie brauchen sich darum keine Sorgen zu machen.

20
vyas

Grundsätzlich müssen Sie unterschiedliche Layoutdateien für verschiedene Qualifikationsmerkmale bereitstellen. 

Ein sehr kurzes Beispiel: XML-Layoutdateien, die sich im Ordner layout-sw720dp (oder layout-large für API-Ebene <13) befinden, werden für Geräte mit einer Breite von mehr als 720 Zoll (d.

Überprüfen Sie Unterstützung mehrerer Bildschirme und Ressourcen bereitstellen in der Android-Dokumentation.

8
matiash

Überprüfen Sie dies: http://developer.Android.com/guide/practices/screens_support.html

Sie müssen nicht zwei separate Apps erstellen. 

6
Shivam Verma

Ich habe das gleiche getan, um das Attribut "app: layoutManager" der Recycler-Ansicht zu ändern. Da Sie eine Listen- und Rasteransicht verwenden, scheint die Verwendung der Recycler-Ansicht der beste Weg für einen reibungslosen Bildlauf zu sein.

  1. Erstellen Sie einen Ordner in res "layout-sw600dp".
  2. Kopieren Sie die Layoutdatei in diesen Ordner.
  3. Legen Sie in der ursprünglichen Layoutdatei, die sich im Layoutordner befindet, den linearen Layoutmanager als Attribut des Layoutmanagers fest.

    <Android.support.v7.widget.RecyclerViewapp:layoutManager="Android.support.v7.widget.LinearLayoutManager"/>

  4. Legen Sie in der Ordner-Layoutdatei "layout-sw600dp" GridLayoutManager als das Attribut Recycler View fest.

    <Android.support.v7.widget.RecyclerView app:layoutManager="Android.support.v7.widget.GridLayoutManager"/>

Vergessen Sie nicht, die Spannenanzahl zu ändern, da sie standardmäßig auf 0 gesetzt ist und der Ausgabe des Liner-Layouts entspricht.

Ressourcen:

  1. Wie setze ich die RecyclerView-App: layoutManager = "" aus XML?

  2. https://medium.com/google-developers/building-a-responsive-ui-in-Android-7dc7e4efcbb3

  3. https://developer.Android.com/training/multiscreen/screensizes.html

0
SandaruMK