I have 4 components(boxes) in an ConstraintLayout but the issues is the space between those components is more than the spaces around them I know the issue is because of the margin i have given to each individual component, but what is the work around? to achieve the design given below
Above is what i have achieved so far.
The main issue bothering is the space between those 4 components, it looks more away from each other than looking compact.
here is my xml code
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/view_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5" />
<!-- Top Left-->
<FrameLayout
android:id="@+id/frameLayout_top_left"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/view_horizontal"
app:layout_constraintEnd_toStartOf="@+id/frameLayout_top_right"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_17sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_17sdp"
android:layout_marginBottom="@dimen/_18sdp"
android:backgroundTint="@color/gradient_end_dashboard"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_20sdp"
android:backgroundTint="@color/white"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
<!-- Top Right-->
<FrameLayout
android:id="@+id/frameLayout_top_right"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/view_horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/frameLayout_top_left"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_17sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_17sdp"
android:layout_marginBottom="@dimen/_18sdp"
android:backgroundTint="@color/gradient_end_dashboard"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_20sdp"
android:backgroundTint="@color/white"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
<!-- Bottom Left-->
<FrameLayout
android:id="@+id/frameLayout_bottom_left"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/frameLayout_bottom_right"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_17sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_17sdp"
android:layout_marginBottom="@dimen/_18sdp"
android:backgroundTint="@color/gradient_end_dashboard"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_20sdp"
android:backgroundTint="@color/white"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
<!-- Bottom Right-->
<FrameLayout
android:id="@+id/frameLayout_bottom_right"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/frameLayout_bottom_left"
app:layout_constraintTop_toBottomOf="@id/view_horizontal">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_17sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_17sdp"
android:layout_marginBottom="@dimen/_18sdp"
android:backgroundTint="@color/gradient_end_dashboard"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_20sdp"
android:backgroundTint="@color/white"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Try using relative layout instead of frame layout and shift your layout/imageview inside the second cardView
<RelativeLayout
android:id="@+id/rl_top_left"
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintBottom_toTopOf="@+id/rl_bottom_left"
app:layout_constraintEnd_toStartOf="@+id/rl_top_right"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:backgroundTint="#163042"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_marginBottom="3dp"
android:layout_marginEnd="7dp"
android:layout_marginStart="7dp"
android:layout_marginTop="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:backgroundTint="#ffffff"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_margin="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:elevation="10dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_height="40dp"
android:layout_width="40dp"
android:src="@drawable/ic_apple" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="Some Text"
android:textColor="#abcdef"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="sub text"
android:textColor="#009688"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_top_right"
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintBottom_toTopOf="@+id/rl_bottom_right"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/rl_top_left"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:backgroundTint="#163042"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_marginBottom="3dp"
android:layout_marginEnd="7dp"
android:layout_marginStart="7dp"
android:layout_marginTop="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:backgroundTint="#ffffff"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_margin="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:elevation="10dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_height="40dp"
android:layout_width="40dp"
android:src="@drawable/ic_apple" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="Some Text"
android:textColor="#abcdef"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="sub text"
android:textColor="#009688"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_bottom_left"
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/rl_bottom_right"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rl_top_left">
<androidx.cardview.widget.CardView
android:backgroundTint="#163042"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_marginBottom="3dp"
android:layout_marginEnd="7dp"
android:layout_marginStart="7dp"
android:layout_marginTop="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:backgroundTint="#ffffff"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_margin="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:elevation="10dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_height="40dp"
android:layout_width="40dp"
android:src="@drawable/ic_apple" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="Some Text"
android:textColor="#abcdef"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="sub text"
android:textColor="#009688"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_bottom_right"
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/rl_bottom_left"
app:layout_constraintTop_toBottomOf="@+id/rl_top_right">
<androidx.cardview.widget.CardView
android:backgroundTint="#163042"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_marginBottom="3dp"
android:layout_marginEnd="7dp"
android:layout_marginStart="7dp"
android:layout_marginTop="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp" />
<androidx.cardview.widget.CardView
android:backgroundTint="#ffffff"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_margin="7dp"
android:layout_width="match_parent"
app:cardCornerRadius="20dp"
app:cardElevation="5dp"
app:cardMaxElevation="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:elevation="10dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_height="40dp"
android:layout_width="40dp"
android:src="@drawable/ic_apple" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="Some Text"
android:textColor="#abcdef"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:text="sub text"
android:textColor="#009688"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>