2017-06-17 3 views
1

Je construis une mise en page simple ligne pour ajouter des données dynamicly dans ma vue de recyclage, donc je bâtissaient aa mise en page comme ceci:vue Recycle texte de la ligne chevauche sur des appareils plus petits

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="#cfcfcf"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="10dp" 
     android:background="#ffffff" 
     android:orientation="horizontal"> 

     <ImageView 
      android:id="@+id/plantPhoto" 
      android:layout_width="120dp" 
      android:layout_height="100dp" 
      android:layout_weight="1" 
      android:background="#c7c7c7" 
      android:padding="0dp" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="20" 
      android:orientation="vertical"> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

       <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView 
        android:id="@+id/plantName" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="left" 
        android:padding="15dp" 
        android:text="TextView" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="@color/emerald" /> 

       <ImageView 
        android:id="@+id/starIcon" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentEnd="true" 
        android:padding="15dp" 
        android:src="@drawable/ic_star" /> 

      </RelativeLayout> 


      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:padding="15dp"> 


       <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView 
        android:id="@+id/data" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toStartOf="@+id/cameraForbiden" 
        android:text="TextView" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="@color/base" /> 

       <ImageView 
        android:id="@+id/cameraForbiden" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentEnd="true" 
        android:src="@drawable/ic_no_photos" /> 

       <ImageView 
        android:id="@+id/userIcon" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 

        android:gravity="left" 
        android:src="@drawable/ic_user" /> 

       <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView 
        android:id="@+id/password" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/userIcon" 
        android:layout_alignBottom="@+id/userIcon" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text="Filipe" 
        android:textColor="@color/base" /> 

      </RelativeLayout> 

     </LinearLayout> 
    </LinearLayout> 

le principal problème de cette approche est que Quand je vérifie ma solution sur des appareils plus petits, le texte à gauche ou le texte à droite, une solution que je cherche est de diminuer le contenu en fonction de la taille de l'appareil, mais ne l'a pas encore trouvé.

C'est ce que je reçois sur un Nexus 5 par exemple:

bigger screan

ce que je reçois sur un appareil plus petit:smaller screan

d'aide avec ce gars-là?

Merci beaucoup

+0

utiliser une mise en page différente pour les appareils plus petits (https://developer.android.com/guide/practices/screens_support.html) – Henry

+0

Eh bien, je ne l'aime pas trop que solution, puisque j'ai comme 50 activités, s'il n'y a pas d'autre moyen que je peux essayer, mais il est étrange que Android ne peut pas adapter le contenu screan sur différents appareils seul: S –

+0

Dans un certain sens Android adapte la vue, sinon le des objets trop larges dépasseraient vers la droite et ne seraient plus visibles. Mais à un moment donné, il ne reste plus assez d'espace, il faut donc trouver une autre solution. Par exemple, arrangez les deux textes verticalement plutôt qu'horizontalement, ou omettez quelques informations. Seul le designer peut dire ce qu'il y a de mieux ici. Toute solution automatique va téter tôt ou tard. – Henry

Répondre

0

Vous pouvez utiliser disposition linéaire pour cela. Vous pouvez affecter poids à chaque article.

Essayez ce code:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#cfcfcf"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="10dp" 
      android:background="#ffffff" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/plantPhoto" 
       android:layout_width="120dp" 
       android:layout_height="100dp" 
       android:layout_weight="1" 
       android:background="#c7c7c7" 
       android:padding="0dp" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="20" 
       android:orientation="vertical"> 

       <LinearLayout 
        android:orientation="horizontal" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 

        <TextView 
         android:id="@+id/plantName" 
         android:layout_width="0dp" 
         android:layout_weight="1" 
         android:layout_height="wrap_content" 
         android:gravity="left" 
         android:padding="15dp" 
         android:text="TextView" 
         android:textAppearance="?android:attr/textAppearanceSmall" 
         android:textColor="@color/black" /> 

        <ImageView 
         android:id="@+id/starIcon" 
         android:layout_width="0dp" 
         android:layout_weight="0.5" 
         android:layout_height="wrap_content" 
         android:padding="15dp" 
         android:src="@drawable/ic_art_track_black_24dp" /> 

       </LinearLayout> 


       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:padding="15dp" 
        android:orientation="horizontal"> 


        <ImageView 
         android:id="@+id/cameraForbiden" 
         android:layout_width="0dp" 
         android:layout_weight="1" 
         android:layout_height="wrap_content" 
         android:src="@drawable/ic_art_track_black_24dp" /> 

        <TextView 
         android:id="@+id/data" 
         android:layout_width="0dp" 
         android:layout_weight="2.5" 
         android:layout_height="wrap_content" 
         android:text="TextView" 
         android:textAppearance="?android:attr/textAppearanceSmall" 
         android:textColor="@color/black" /> 

        <TextView 
         android:id="@+id/password" 
         android:layout_width="0dp" 
         android:layout_weight="2" 
         android:textAlignment="viewEnd" 
         android:layout_height="wrap_content" 
         android:layout_toRightOf="@+id/userIcon" 
         android:layout_alignBottom="@+id/userIcon" 
         android:textAppearance="?android:attr/textAppearanceSmall" 
         android:text="Filipe" 
         android:textColor="@color/black" /> 

        <ImageView 
         android:id="@+id/userIcon" 
         android:layout_width="0dp" 
         android:layout_height="wrap_content" 
         android:layout_weight="1.5" 
         android:gravity="left" 
         android:src="@drawable/ic_art_track_black_24dp" /> 

       </LinearLayout> 

      </LinearLayout> 
     </LinearLayout> 
</LinearLayout>