ViewGroupBindingAdapter.java revision c619d8f69127c1200103d8119101c5f0675661d0
1/*
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 */
16package android.databinding.adapters;
17
18import android.animation.LayoutTransition;
19import android.annotation.TargetApi;
20import android.databinding.BindingAdapter;
21import android.databinding.BindingMethod;
22import android.databinding.BindingMethods;
23import android.os.Build;
24import android.view.ViewGroup;
25
26@BindingMethods({
27        @BindingMethod(type = android.view.ViewGroup.class, attribute = "android:alwaysDrawnWithCache", method = "setAlwaysDrawnWithCacheEnabled"),
28        @BindingMethod(type = android.view.ViewGroup.class, attribute = "android:animationCache", method = "setAnimationCacheEnabled"),
29        @BindingMethod(type = android.view.ViewGroup.class, attribute = "android:splitMotionEvents", method = "setMotionEventSplittingEnabled"),
30})
31public class ViewGroupBindingAdapter {
32
33    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
34    @BindingAdapter("android:animateLayoutChanges")
35    public static void setAnimateLayoutChanges(ViewGroup view, boolean animate) {
36        if (animate) {
37            view.setLayoutTransition(new LayoutTransition());
38        } else {
39            view.setLayoutTransition(null);
40        }
41    }
42}
43