2017-09-23 5 views
0

J'utilise ConstraintLayout et je veux centrer un ImageView sur le bord de la mise en page comme cette image: imageview centeredAndroid - Centre une ImageView sur le bord de la mise en page

Comment puis-je faire en utilisant ConstraintLayout sans utiliser l'altitude (Je ne sais pas comment gérer l'élévation des dispositifs pré-Lollipop).

Voici mon code à ce jour:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    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="300dp" 
    app:behavior_hideable="false" 
    app:behavior_peekHeight="190dp" 
    android:clickable="true" 
    android:focusable="true" 
    android:background="#eee" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior" 
    android:id="@+id/main_ride_finished_container" 
    > 


    <de.hdodenhof.circleimageview.CircleImageView 
     android:id="@+id/main_driver_enroute_BS_driverImage" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:src="@color/colorPrimary" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     android:elevation="3dp" 
     /> 
    <android.support.constraint.ConstraintLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="35dp" 
     android:background="#FFFFFF" 
     > 


    </android.support.constraint.ConstraintLayout> 


</android.support.constraint.ConstraintLayout> 
+0

ce que vous essayez jusqu'à présent poster le code ici – akhilesh0707

+0

@ akhilesh0707 i ajouté l'exemple de code je suis usin – ZeroOne

+0

[Ce] (http://saulmm.github.io/mastering-coordinator) vous mènera à [this] (https://github.com/saulmm/CoordinatorBehaviorExample/blob/master/app/src/main/res/layout/activity_main.xml) –

Répondre

1

Vous pouvez faire une vue centrée endroit sur le bord d'une mise en page en utilisant les contraintes appropriées. Dans l'exemple simple suivant, le ImageView est contraint au début et à la fin du conteneur englobant pour le centrer horizontalement. Le haut et le bas de la vue de l'image sont limités au bas de la mise en page intérieure pour se centrer sur le bas. C'est ainsi que ConstraintLayout traite des contraintes "impossibles". Voir le doc.

enter image description here

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.constraint.ConstraintLayout 
     android:id="@+id/innerLayout" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:background="@color/colorPrimary" /> 

    <ImageView 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@color/colorAccent" 
     app:layout_constraintBottom_toBottomOf="@id/innerLayout" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@id/innerLayout" /> 

</android.support.constraint.ConstraintLayout>