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