La vue extérieure doit également avoir des coins arrondis.
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffff"></solid> <corners android:radius="10dp" /> <stroke android:width="@dimen/dimen_1" android:color="#1877ee" /> </shape>
3 Réponses :
Pourquoi ne pas simplement utiliser une mise en page sur une autre mise en page?
Par exemple, une mise en page linéaire parent dans son ensemble et deux mises en page linéaires enfants avec des poids égaux et des arrière-plans différents:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="2"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:background="#FFEB3B"> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:background="#CC2323"> </LinearLayout> </LinearLayout>
comme je l'ai mentionné, il faut aussi des coins arrondis et le conteneur extérieur doit avoir une hauteur wrap_content
Pour obtenir un arrière-plan coloré avec des couleurs arrondies, regardez cette question et les différentes réponses: stackoverflow.com/questions/8930555/… Et si vous voulez que le conteneur extérieur soit wrap_content, alors pourquoi ne pas simplement changer son attribut de hauteur en cela ? Si la mise en page entière doit avoir des coins arrondis, vous voudrez probablement regarder dans CardViews: developer.android.com/reference/android/support/v7/widget/...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@drawable/round_corners" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="2"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:background="@color/upper_one"> //code for layout for adjusting height </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:background="@color/lower_color"> //code for layout for adjusting height</LinearLayout> </LinearLayout> You can fix the height or use wrap content to height and adjust view height inside linearlayouts
Vous pouvez peut-être utiliser un dessin personnalisé:
Rendre un nouveau dessinable (border_up.xml) en utilisant ce code:
<LinearLayout android:weightSum="2" android:orientation="vertical" android:layout_width="120dp" android:layout_height="200dp" android:layout_marginTop="50dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" > <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:textColor="@color/colorWhite" android:gravity="center_horizontal|center_vertical" android:background="@drawable/border_up" android:text="TextView" /> <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/colorWhite" android:gravity="center_horizontal|center_vertical" android:background="@drawable/border_down" android:layout_weight="1" android:text="TextView" /> </LinearLayout>
Et border_down.xml:
<corners android:topLeftRadius="0dp" android:topRightRadius="0dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" /> <solid android:color="@color/colorAccent"/>
Dans votre mise en page, créez une mise en page linéaire ou une vue de texte en utilisant ci-dessus dessinable:
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" /> <solid android:color="@color/colorPrimary"/>