belongs to Maven artifact com.android.support:percent:28.0.0-alpha1
Deprecated since version 26.1.0
PercentFrameLayout
public
class
PercentFrameLayout
extends FrameLayout
java.lang.Object | ||||
↳ | android.view.View | |||
↳ | android.view.ViewGroup | |||
↳ | android.widget.FrameLayout | |||
↳ | android.support.percent.PercentFrameLayout |
This class was deprecated
in API level 26.1.0.
consider using ConstraintLayout and associated layouts instead. The following shows
how to replicate the functionality of percentage layouts with a ConstraintLayout. The Guidelines
are used to define each percentage break point, and then a Button view is stretched to fill
the gap:
<android.support.constraint.ConstraintLayout 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"> <android.support.constraint.Guideline android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/left_guideline" app:layout_constraintGuide_percent=".15" android:orientation="vertical"/> <android.support.constraint.Guideline android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/right_guideline" app:layout_constraintGuide_percent=".85" android:orientation="vertical"/> <android.support.constraint.Guideline android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/top_guideline" app:layout_constraintGuide_percent=".15" android:orientation="horizontal"/> <android.support.constraint.Guideline android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bottom_guideline" app:layout_constraintGuide_percent=".85" android:orientation="horizontal"/> <Button android:text="Button" android:layout_width="0dp" android:layout_height="0dp" android:id="@+id/button" app:layout_constraintLeft_toLeftOf="@+id/left_guideline" app:layout_constraintRight_toRightOf="@+id/right_guideline" app:layout_constraintTop_toTopOf="@+id/top_guideline" app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" /> </android.support.constraint.ConstraintLayout>
Subclass of FrameLayout
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:
<android.support.percent.PercentFrameLayout 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%"/> </android.support.percent.PercentFrameLayout>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
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
Nested classes | |
---|---|
class |
PercentFrameLayout.LayoutParams
This class was deprecated in API level 26.1.0. this class is deprecated along with its parent class. |
Inherited constants |
---|
![]()
android.view.ViewGroup
|
![]()
android.view.View
|