2016-07-07 1 views
2

Lorsque j'essaie d'ajouter une vue sans "widthPercent" ou "heightPercent" dans un PercentRelativeLayout, la vue n'apparaît pas.Utiliser la largeur dp dans PercentRelativeLayout

La raison pour laquelle je veux cela est d'ajouter un séparateur entre les 2 éléments de mon PercentRelativeLayout avec une largeur de 1dp.

La mise en page J'utilise c'est:

<android.support.percent.PercentRelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <FrameLayout android:id="@+id/fragment_list_container" 
     app:layout_widthPercent="30%" 
     android:layout_height="match_parent" 

     android:layout_toLeftOf="@+id/divider" 
     android:layout_toStartOf="@+id/divider"/> 

    <View android:id="@id/divider" 
     android:layout_width="1dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/detailed_list_divider" 

     android:layout_toLeftOf="@+id/fragment_details_container" 
     android:layout_toStartOf="@+id/fragment_details_container"/> 

    <FrameLayout android:id="@id/fragment_details_container" 
     app:layout_widthPercent="70%" 
     android:layout_height="match_parent" 

     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 

     android:paddingBottom="@dimen/base_activity_padding" 
     android:paddingRight="@dimen/base_activity_padding" 
     android:paddingLeft="@dimen/base_activity_padding" /> 

</android.support.percent.PercentRelativeLayout> 

Et si je mets « layout_widthPercent » à 1% à mon diviseur il sera affiché. Mais je veux que ça prenne seulement 1dp. Est-ce que c'est un moyen d'y parvenir?

Merci!

+0

Je ne pense pas que dp fonctionnera ici, mais vous pouvez utiliser pour cent comme 0,01% pour la vue et 0,99% pour la trame ci-dessous, il vous aidera – Vickyexpert

+0

Lorsque je définis 0,01% le diviseur n'est pas affiché sur certains appareils (peut-être 0,01% est inférieur à 1dp). – MHogge

+0

Vous avez appliqué le droit chemin ci-dessus alors gardez-le, c'est aussi bien – Vickyexpert

Répondre

0

J'ai trouvé un moyen d'atteindre mon objectif mais je ne l'aime pas vraiment (pas très propre) donc je le poste ici et si personne ne me donne une meilleure solution, je vais l'ajouter comme une réponse.

Ce que j'ai fait est d'ajouter un RelativeLayout avec un widthPercent de 1% qui contient ma vue de 1dp. Comme ceci:

<android.support.percent.PercentRelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <FrameLayout android:id="@+id/fragment_list_container" 
     app:layout_widthPercent="30%" 
     android:layout_height="match_parent" 

     android:layout_toLeftOf="@+id/divider" 
     android:layout_toStartOf="@+id/divider"/> 

    <RelativeLayout android:id="@id/divider" 
     app:layout_widthPercent="1%" 
     android:layout_height="match_parent" 

     android:layout_toLeftOf="@+id/fragment_details_container" 
     android:layout_toStartOf="@+id/fragment_details_container"> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="match_parent" 
      android:background="@drawable/detailed_list_divider" /> 

    </RelativeLayout> 

    <FrameLayout android:id="@id/fragment_details_container" 
     app:layout_widthPercent="70%" 
     android:layout_height="match_parent" 

     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 

     android:paddingBottom="@dimen/base_activity_padding" 
     android:paddingRight="@dimen/base_activity_padding" 
     android:paddingLeft="@dimen/base_activity_padding" /> 

</android.support.percent.PercentRelativeLayout> 

Faites-moi savoir si vous avez une meilleure idée.