Android Universal App Ansatz

Ich möchte eine universelle App entwickeln. Ich bin ein Anfänger in diesem Ansatz. Das bedeutet, eine einzige Apk für Tablet und Handy-Anwendung. Ich hatte durchgemacht

Unterstützungsbibliothek

Fragmente

Mein Ziel ist es, verschiedene Benutzeroberflächen für Tablets und Telefone in einem einzigen APK zu erstellen.

ich hatte gelesenBereiten Sie Ihre App auf Jelly Bean und Nexus 7 vor . Dieser Artikel erwähnt das

res/layout/activity_home.xml

To take advantage of the extra space on the 7” screen you might provide an alternative layout:

res/layout-sw600dp/activity_home.xml

The sw600dp qualifier declares that these resources are for devices that have a screen with at least 600dp available on its smallest side. 

    Furthermore you might even provide a different layout for 10” tablets:

res/layout-sw720dp/activity_home.xml

Das heißt, wir können unterschiedliche Layouts für unterschiedliche Geräte verwenden. Das verwirrt mich

EDIT 1 :: Szenario

Annehmen

if my phone UI layout contains one-view pager and 

tablet UI layout contain two-view pager  . 

Wie können wir das erreichen? In diesem Artikel heißt es, dass Sie ein anderes Layout mit demselben Namen für verschiedene Bildschirme entwerfen und den entsprechenden Ordner behalten. Ich bezweifle jedoch, dass dies zu Ausnahmen führen wird, wenn versucht wird, die Widget-Komponente des Tablet-Layouts zu initialisieren, wenn die App auf einem Telefon ausgeführt wird.

EDIT 2: Mir kam die Idee, festzustellen, welchen Gerätetyp ich verwende, z. B. Tab oder Telefon.

Bestimmen Sie, ob das Gerät ein Smartphone oder ein Tablet ist?

Vermeiden Sie dann die Initialisierung von Widgets, wenn die App ein Telefon ist. Gibt es einen besseren Weg als diesen?

EDIT 3: Meine Anwendung unterstützt ab 2.3 höhere Versionen

Wenn meine Layouts für Tablets im Vergleich zum Telefonlayout zusätzliche Widgets enthalten. Wie initialisiere und verwende ich sie? Hoffe alle haben mein Bedürfnis verstanden. Also bitte kläre meinen Zweifel

Antworten auf die Frage(2)

Ihre Antwort auf die Frage