1<?xml version="1.0" encoding="utf-8"?> 2<!-- Copyright (C) 2015 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15--> 16 17<android.support.percent.PercentFrameLayout 18 xmlns:android="http://schemas.android.com/apk/res/android" 19 xmlns:app="http://schemas.android.com/apk/res-auto" 20 android:id="@+id/container" 21 android:layout_width="match_parent" 22 android:layout_height="match_parent"> 23 24 <!-- Note the usage of layout_gravity in all child views that use margin attributes that 25 addresses a bug in FrameLayout on v9 and older devices that didn't correctly treat the 26 margin attributes. --> 27 28 <!-- For testing width + height only --> 29 <View 30 android:id="@+id/child_width_height" 31 app:layout_widthPercent="50%" 32 app:layout_heightPercent="50%" /> 33 34 <!-- For testing width + aspect ratio only --> 35 <View 36 android:id="@+id/child_width_ratio" 37 app:layout_widthPercent="60%" 38 app:layout_aspectRatio="120%" /> 39 40 <!-- For testing height + aspect ratio only --> 41 <View 42 android:id="@+id/child_height_ratio" 43 app:layout_heightPercent="50%" 44 app:layout_aspectRatio="150%" /> 45 46 <!-- For testing margins from a single attribute. Note that we still need core width / height 47 attributes since otherwise the logic in core FrameLayout will give size 0x0 to this 48 child. --> 49 <View 50 android:id="@+id/child_margins_single" 51 android:layout_width="match_parent" 52 android:layout_height="match_parent" 53 app:layout_marginPercent="30%" 54 android:layout_gravity="top" /> 55 56 <!-- For testing margins from different attributes. Note that we still need core width / height 57 attributes since otherwise the logic in core FrameLayout will give size 0x0 to this 58 child. --> 59 <View 60 android:id="@+id/child_margins_multiple" 61 android:layout_width="match_parent" 62 android:layout_height="match_parent" 63 app:layout_marginTopPercent="10%" 64 app:layout_marginLeftPercent="15%" 65 app:layout_marginBottomPercent="20%" 66 app:layout_marginRightPercent="25%" 67 android:layout_gravity="top" /> 68 69 <!-- For testing top + left margins with width + height --> 70 <View 71 android:id="@+id/child_margins_top_left" 72 app:layout_widthPercent="50%" 73 app:layout_heightPercent="50%" 74 app:layout_marginTopPercent="20%" 75 app:layout_marginLeftPercent="20%" 76 android:layout_gravity="top|left" /> 77 78 <!-- For testing bottom + right margin with width + height --> 79 <View 80 android:id="@+id/child_margins_bottom_right" 81 app:layout_widthPercent="60%" 82 app:layout_heightPercent="60%" 83 app:layout_marginBottomPercent="10%" 84 app:layout_marginRightPercent="10%" 85 android:layout_gravity="bottom|right" /> 86 87 <!-- For testing start margin --> 88 <View 89 android:id="@+id/child_margin_start" 90 app:layout_widthPercent="50%" 91 app:layout_heightPercent="50%" 92 app:layout_marginStartPercent="20%" 93 android:layout_gravity="start" /> 94 95 <!-- For testing end margin --> 96 <View 97 android:id="@+id/child_margin_end" 98 app:layout_widthPercent="50%" 99 app:layout_heightPercent="50%" 100 app:layout_marginEndPercent="30%" 101 android:layout_gravity="end" /> 102 103</android.support.percent.PercentFrameLayout> 104 105