PercentRelativeLayout
open class PercentRelativeLayout : RelativeLayout
Subclass of android.widget.RelativeLayout
that supports percentage based dimensions and margins. You can specify dimension or a margin of child by using attributes with "Percent" suffix. Follow this example:
<androidx.percentlayout.widget.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
app:layout_widthPercent="50%"
app:layout_heightPercent="50%"
app:layout_marginTopPercent="25%"
app:layout_marginLeftPercent="25%"/>
</androidx.percentlayout.widget.PercentRelativeLayout>
The attributes that you can use are:
layout_widthPercent
layout_heightPercent
layout_marginPercent
layout_marginLeftPercent
layout_marginTopPercent
layout_marginRightPercent
layout_marginBottomPercent
layout_marginStartPercent
layout_marginEndPercent
layout_aspectRatio
It is not necessary to specify
layout_width/height
if you specify
layout_widthPercent.
However, if you want the view to be able to take up more space than what percentage value permits, you can add
layout_width/height="wrap_content"
. In that case if the percentage size is too small for the View's content, it will be resized using
wrap_content
rule.
You can also make one dimension be a fraction of the other by setting only width or height and using layout_aspectRatio
for the second one to be calculated automatically. For example, if you would like to achieve 16:9 aspect ratio, you can write:
android:layout_width="300dp"
app:layout_aspectRatio="178%"
This will make the aspect ratio 16:9 (1.78:1) with the width fixed at 300dp and height adjusted accordingly.
Summary
Public constructors
<init>
PercentRelativeLayout(context: Context!)
Public methods
Protected methods