How to make View fill remaining space in ConstraintsLayout

constraintlayout
linearlayout fill remaining space
recyclerview fill remaining space
android fill space in layout
android coordinatorlayout fill remaining space
constraint layout overlapping
relativelayout fill remaining space
constraint layout cheat sheet

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.

This work, go with ConstraintLayout because has better performance.

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:background="#FF0000"
        android:id="@+id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_header"
        android:minHeight="30dp"
        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:id="@+id/task_fragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:background="#00FF00"
        android:orientation="vertical"
        app:layout_constrainedHeight="true"
        app:layout_constraintBottom_toTopOf="@+id/btn_ar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHeight_default="spread"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/header"
        app:layout_constraintWidth_default="wrap">

    </FrameLayout>

    <ImageButton
        android:id="@+id/btn_ar"
        style="?borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:padding="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/ic_ar"
        app:layout_constraintBottom_toBottomOf="parent" />

</android.support.constraint.ConstraintLayout>

How to make View fill remaining space in ConstraintsLayout, Ah! I forgot to add a vertical constraint to the top. Changing the FrameLayout to this did the trick. <FrameLayout android:id="@+id/content"� Home » Android » android – How to make View fill remaining space in ConstraintsLayout android – How to make View fill remaining space in ConstraintsLayout Posted by: admin June 15, 2020 Leave a comment

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.

How to wrap_content or "fill available space" in ConstraintLayout , Sometimes we want to design a layout that has one view or some set of views with specific height or width while the next view� You can use set the layout_width or layout_width to 0dp (By the orientation you want to fill remaining space). Then use the layout_weight to make it fill remaining space.

<FrameLayout
    android:id="@+id/task_fragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:background="#00FF00"
    android:orientation="vertical"
    app:layout_constrainedHeight="true"
    app:layout_constraintBottom_toTopOf="@+id/btn_ar"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHeight_default="spread"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/header"
    app:layout_constraintWidth_default="wrap">

</FrameLayout>

This should work.

Explanation:

All you want is to make the top of this FrameLayout constraint to the bottom of the header, and the bottom of this FrameLayout constraint to the top of the footer.

After setting all the constraints, you still need to set the layout param of FrameLayout to match the constraint. In order to do this, you can try to set layout_height to 0dp. This will make the height of FrameLayout have the effect of match_constraint.

For more detail, you can check this doc: https://developer.android.com/reference/android/support/constraint/ConstraintLayout (just search the keyword match constraint and you will find that block), or simply check this similar answer: Set width to match constraints in ConstraintLayout

Make View fill space leftover in parent view using ConstraintLayout, The layout_to* family attributes are use to put two views side by side. all the remaining space to those widgets-same as a LinearLayout. case of a chain with free space (no match_constraint and not enough elements to fill� Since you want the ListView to occupy all of the available space, it is a good idea to set the height to 0dp. This is sorta like a stretch-me-how-you-like scheme for ConstraintLayouts. The height would therefore entirely depend on the top and bottom constraints. So, nice step! Your mistake, however, was the way you constrained your views.

Guide to ConstraintLayout - Loutry, Size one element to fill the remaining space on the screen. I'm working on an app that has a <android.support.constraint.ConstraintLayout� I've tried lots of ways and can't seem to find an elegant solution. Essentially what I want is that the recyclerview will wrap_content until that content is too big. If the content is too big, I want the recyclerview to expand to fill the space it can, while leaving 200dp at the top. In iOS this would be possible using a >= 200 constraint.

Size one element to fill the remaining space on the screen, android How to make layout with View fill the remaining space? Question Using a ConstraintLayout, I've found something like. works. The key is setting the � The RelativeLayout has been replaced by a LinearLayout, all of the relative positioning tags have been removed, and a layout_weight attribute has been added to the centre LinearLayout which will cause it to stretch to fill the available space.

android How to make layout with View fill the remaining space , Every view must have at least two constraints: one horizontal and one vertical. can fill the remaining space by setting one or more views to "match constraints"� The important thing to remember is the view that is set to ALIGN_PARENT_SOMETHING e.g. ALIGN_PARENT_TOP or ALIGN_PARENT_BOTTOM is the "priority view". All the other view that should fill remaining space should be set relative to this "priority view". Basic Example. Here's a demo using programmatic approach: