web-dev-qa-db-fra.com

Création d'une mise en page différente pour téléphone et tablette Android

Ceci est une question de base Android. J'ai une application qui doit avoir un design d'écran différent pour un téléphone et une tablette. Le téléphone doit avoir un ListView et la tablette doivent avoir un GridView d'éléments. 

Je souhaite savoir comment faire cela sans créer deux applications différentes.

Merci

22
user3713706

Fondamentalement, vous devez faire différentes dispositions pour le téléphone Android et les tablettes. Android est assez intelligent pour se différencier. Par exemple, pour un grand écran, vous pouvez simplement créer un nouveau nom de dossier, Layout-large. et mettez votre tablette xml dedans. Android choisira xml à partir d'ici et, dans le cas d'un téléphone, choisira dans un simple dossier de présentation . Les qualificateurs de configuration que vous pouvez utiliser pour fournir des ressources spécifiques à la taille sont petits, normaux, grands et xlarge. Par exemple, les mises en page pour un très grand écran doivent aller dans layout-xlarge /.

Je recommanderais si les écrans du téléphone et de la tablette, ainsi que totalement différents, peuvent créer deux apks différents et charger le même identifiant sur Google Play. De cette façon, votre application sera légère et rapide. Google play peut automatiquement détecter que cette application est destinée à une tablette ou à un téléphone. Ne vous inquiétez pas.

20
vyas

Vous devez fondamentalement fournir différents fichiers de mise en page pour différents qualificateurs. 

À titre d’exemple très bref, les fichiers de mise en page XML placés dans le dossier layout-sw720dp (ou layout-large pour le niveau d’API <13) seront utilisés pour les périphériques de plus de 720 dips (par exemple, les tablettes 10 ").

Vérifiez Prise en charge de plusieurs écrans et Fourniture de ressources dans la documentation Android.

8
matiash

Découvrez ceci: http://developer.Android.com/guide/practices/screens_support.html

Vous n'avez pas besoin de créer deux applications distinctes. 

6
Shivam Verma

Voici ce que j'ai fait pour modifier de la même manière l'attribut "app: layoutManager" de la vue Recycler. Puisque vous utilisez une vue liste et une grille, la vue recycleur semble être le meilleur moyen de faire défiler en douceur.

  1. Créez un dossier dans res "layout-sw600dp".
  2. Copiez le fichier de mise en page dans ce dossier.
  3. Dans le fichier de présentation d'origine qui se trouve dans le dossier de présentation, définissez le gestionnaire de présentation linéaire comme attribut du gestionnaire de présentation.

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

  4. Dans le fichier de mise en forme du dossier "layout-sw600dp", définissez GridLayoutManager en tant qu'attribut Recycler View.

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

N'oubliez pas de changer le nombre d'intervalles, car sa valeur par défaut est 0, ce qui correspond à la sortie de la présentation de la doublure.

Ressources:

  1. Comment définir l'application RecyclerView: layoutManager = "" à partir de 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