2016-10-04 1 views
1

Je travaille actuellement sur une application et ma mise en page est la suivante:
Comment fixer les positions ImageView mais ont textview variables dessus d'eux dans Android

  • J'ai un recyclerview tenant tous mes articles, chaque élément a une vue de texte au-dessus d'une imageview. Ainsi, la vue de texte peut s'étendre jusqu'à 3 lignes, mais seulement si nécessaire. Le recyclerview utilise un gestionnaire gridlayout pour afficher tous mes éléments.

Le problème est qu'actuellement lorsque l'affichage de texte étend d'avoir plus de 1 ligne, il enfonce l'image au lieu de le garder aligné avec les autres images de la ligne

What I currently have

Qu'est-ce que Je veux empêcher la vue de texte d'appuyer sur l'image, mais de la construire de façon à ce que les images restent normales et que la vue du texte augmente comme l'image ci-dessous.

What I want

Y at-il moyen d'y parvenir? Je pense que cela ne devrait pas être difficile, mais je n'arrive pas à trouver un moyen d'y parvenir ou, plus probablement, je ne peux pas trouver les bonnes solutions sur Google pour trouver la solution que je recherche.

Répondre

0

donc j'ai trouvé une réponse, je devais définir deux propriétés pour mon textview:

android:lines="3" 
android:gravity="bottom" 

alors à la fin de chaque élément avait une disposition ci-dessous:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:paddingStart="31dp" 
    android:paddingEnd="32dp"> 

<TextView 
    android:id="@+id/app_name" 
    android:layout_width="@dimen/product_list_image_dimensions" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:text="@string/app_card_temp_name" 
    android:textSize="@dimen/product_list_text_size" 
    android:fontFamily="sans-serif-condensed" 
    android:lines="3" 
    android:textAlignment="center" 
    android:textColor="@color/app_name_product_list_color" 
    android:typeface="normal" 
    android:gravity="bottom" /> 

<ImageView 
    android:id="@+id/app_thumbnail" 
    android:layout_width="@dimen/product_list_image_dimensions" 
    android:layout_height="@dimen/product_list_image_dimensions" 
    android:layout_below="@id/app_name" 
    android:paddingTop="@dimen/product_list_text_bottom_padding" 
    android:scaleType="centerCrop" 
    android:layout_centerHorizontal="true" /> 

</RelativeLayout>