Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make View fill remaining space in ConstraintsLayout

Tags:

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.

like image 477
therandomprogrammer Avatar asked Aug 28 '18 14:08

therandomprogrammer


People also ask

Which is better RelativeLayout or ConstraintLayout?

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.

What is the difference between ConstraintLayout and LinearLayout?

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.

How do I change relative layout to ConstraintLayout?

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.

Can we use RelativeLayout inside 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.


1 Answers

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.

like image 190
Ankush Chauhan Avatar answered Oct 05 '22 09:10

Ankush Chauhan