1<!-- 2 Copyright (C) 2014 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<!--DISCLAIMER: This is a demo layout showing various calculations you can make in binding 18expressions. It is usually a good practice to keep these expressions simple and use a ViewModel 19if they are getting complex.--> 20<layout xmlns:android="http://schemas.android.com/apk/res/android" 21 xmlns:bind="http://schemas.android.com/apk/res-auto" 22 xmlns:tools="http://schemas.android.com/tools"> 23 <data> 24 <variable name="activity" type="com.android.example.bindingdemo.MainActivity"/> 25 <!----> 26 <import 27 type="android.view.View" 28 /> 29 <!----> 30 <import type="com.android.example.bindingdemo.R.string" alias="Strings"/> 31 <import type="com.android.example.bindingdemo.vo.User"/> 32 </data> 33 <LinearLayout 34 android:layout_width="match_parent" 35 android:layout_height="match_parent" 36 android:orientation="vertical" 37 android:paddingBottom="@dimen/activity_vertical_margin" 38 android:paddingLeft="@dimen/activity_horizontal_margin" 39 android:paddingRight="@dimen/activity_horizontal_margin" 40 android:paddingTop="@dimen/activity_vertical_margin" 41 android:id="@+id/activityRoot" 42 tools:activity=".MainActivity" 43 android:clickable="true" 44 android:onClick="@{activity.onUnselect}"> 45 <TextView 46 android:id="@+id/title" 47 android:layout_width="wrap_content" 48 android:layout_height="wrap_content" 49 android:text="@{@plurals/kittens(activity.tkAdapter.itemCount, activity.tkAdapter.itemCount)}"> 50 51 </TextView> 52 53 <android.support.v7.widget.RecyclerView 54 android:id="@+id/toolkittyList" 55 android:layout_width="match_parent" 56 android:layout_height="@dimen/list_height" 57 bind:adapter="@{activity.tkAdapter}" 58 ></android.support.v7.widget.RecyclerView> 59 60 <View 61 android:layout_width="match_parent" 62 android:layout_height="10dp" /> 63 64 <android.support.v7.widget.CardView 65 android:id="@+id/selected_card" 66 bind:contentPadding="@{activity.selected == null ? 5 : activity.selected.name.length()}" 67 android:layout_width="match_parent" 68 android:layout_height="wrap_content" 69 bind:visibility="@{activity.selected == null ? View.INVISIBLE : View.VISIBLE}"> 70 71 <GridLayout 72 android:layout_width="match_parent" 73 android:layout_height="wrap_content" 74 android:columnCount="2" 75 android:rowCount="4"> 76 77 <ImageView 78 android:id="@+id/selected_photo" 79 android:layout_width="@dimen/big_user_photo" 80 android:layout_height="@dimen/big_user_photo" 81 android:layout_column="0" 82 android:layout_row="0" 83 android:layout_rowSpan="2" 84 android:scaleType="fitCenter" 85 android:backgroundResource="@{activity.selected.photoResource}" /> 86 87 <EditText 88 android:id="@+id/selected_name" 89 android:layout_width="wrap_content" 90 android:layout_height="wrap_content" 91 android:layout_column="1" 92 android:layout_gravity="fill" 93 android:layout_row="0" 94 android:background="@android:color/holo_blue_dark" 95 android:gravity="center" 96 android:text="@{activity.selected.name}" /> 97 98 <EditText 99 android:id="@+id/selected_lastname" 100 android:layout_width="wrap_content" 101 android:layout_height="wrap_content" 102 android:layout_column="1" 103 android:layout_gravity="fill" 104 android:layout_row="1" 105 android:background="@android:color/holo_blue_bright" 106 android:gravity="center" 107 android:text="@{activity.selected.lastName}" /> 108 <Button 109 android:id="@+id/edit_button" 110 android:onClick="@{activity.onSave}" 111 android:text='@{"Save changes to " + activity.selected.name}' 112 android:layout_width="wrap_content" 113 android:layout_height="wrap_content" 114 android:layout_column="1" 115 android:layout_gravity="right" 116 android:layout_row="2"/> 117 118 <Button 119 android:id="@+id/delete_button" 120 android:onClick="@{activity.onDelete}" 121 android:text="@{activity.getString(activity.selected.group == User.KITTEN ? Strings.became_robot : Strings.became_kitten, activity.selected.name)}" 122 android:layout_width="wrap_content" 123 android:layout_height="wrap_content" 124 android:layout_column="1" 125 android:layout_gravity="right" 126 android:layout_row="3"/> 127 128 </GridLayout> 129 </android.support.v7.widget.CardView> 130 <View 131 android:layout_width="match_parent" 132 android:layout_height="10dp" /> 133 <TextView 134 android:layout_width="wrap_content" 135 android:layout_height="wrap_content" 136 android:text='@{activity.robotAdapter.itemCount + " Robots "}' /> 137 <android.support.v7.widget.RecyclerView 138 android:id="@+id/robotList" 139 android:layout_width="match_parent" bind:adapter="@{activity.robotAdapter}" android:layout_height="@dimen/list_height" 140 ></android.support.v7.widget.RecyclerView> 141 </LinearLayout> 142</layout>