How to make View FrameLayout fill all remaining space in ConstraintLayout
I have xml like:
<ImageView android:background="#FF0000" android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_header" android:scaleType="fitXY" android:adjustViewBounds="true" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_default="wrap" app:layout_constraintWidth_default="spread"/> <FrameLayout android:background="#00FF00" app:layout_constraintHeight_default="spread" app:layout_constraintWidth_default="wrap" app:layout_constraintTop_toBottomOf="@id/header" app:layout_constrainedHeight="true" app:layout_constraintBottom_toTopOf="@id/footer" android:id="@+id/task_fragment" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:background="#FFFF00" android:orientation="vertical" android:id="@+id/footer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_default="spread" app:layout_constraintWidth_default="spread" app:layout_constraintBottom_toBottomOf="parent"> <ImageButton style="?borderlessButtonStyle" android:id="@+id/btn_ar" android:layout_height="wrap_content" android:layout_width="match_parent" android:padding="0dp" android:scaleType="fitXY" android:adjustViewBounds="true" android:src="@drawable/ic_ar"/> </LinearLayout> There are header, footer and FrameLayout in the middle I want to make FrameLayout to fill all remaining space.
I don't understand, which properties I have to use to expand FrameLayout. Please help me!
EDIT: Or any solution with different layout.
If you have the choice start with ConstraintLayout, but if you already have your app in RelativeLayout, stay with it. That's all I have been following. RelativeLayout is very limited in functionality and many complex layouts can't be made using it, especially when ratios are involved.
ConstraintLayout has dual power of both Relative Layout as well as Linear layout: Set relative positions of views ( like Relative layout ) and also set weights for dynamic UI (which was only possible in Linear Layout). Despite the fact that it's awesome, it fails to serve the purpose with simple UI layouts.
To convert an existing layout to a constraint layout, follow these steps: Open your layout in Android Studio and click the Design tab at the bottom of the editor window. In the Component Tree window, right-click the layout and click Convert layout to ConstraintLayout.
You can't use relative layout directly inside constraint layout. Intention of ConstraintLayout is to optimize and flatten the view hierarchy of your layouts by applying some rules to each view to avoid nesting.
This is really simple. To make any view fill up the available space either horizontally or vertically, just set the layout_width/layout_height to 0dp according to your need.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With