ThemedSpinnerAdapter.java revision f933672168f6deff5e3636584bec735416b5a93b
1f933672168f6deff5e3636584bec735416b5a93bChris Banes/* 2f933672168f6deff5e3636584bec735416b5a93bChris Banes * Copyright (C) 2015 The Android Open Source Project 3f933672168f6deff5e3636584bec735416b5a93bChris Banes * 4f933672168f6deff5e3636584bec735416b5a93bChris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 5f933672168f6deff5e3636584bec735416b5a93bChris Banes * you may not use this file except in compliance with the License. 6f933672168f6deff5e3636584bec735416b5a93bChris Banes * You may obtain a copy of the License at 7f933672168f6deff5e3636584bec735416b5a93bChris Banes * 8f933672168f6deff5e3636584bec735416b5a93bChris Banes * http://www.apache.org/licenses/LICENSE-2.0 9f933672168f6deff5e3636584bec735416b5a93bChris Banes * 10f933672168f6deff5e3636584bec735416b5a93bChris Banes * Unless required by applicable law or agreed to in writing, software 11f933672168f6deff5e3636584bec735416b5a93bChris Banes * distributed under the License is distributed on an "AS IS" BASIS, 12f933672168f6deff5e3636584bec735416b5a93bChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f933672168f6deff5e3636584bec735416b5a93bChris Banes * See the License for the specific language governing permissions and 14f933672168f6deff5e3636584bec735416b5a93bChris Banes * limitations under the License. 15f933672168f6deff5e3636584bec735416b5a93bChris Banes */ 16f933672168f6deff5e3636584bec735416b5a93bChris Banes 17f933672168f6deff5e3636584bec735416b5a93bChris Banespackage android.support.v7.widget; 18f933672168f6deff5e3636584bec735416b5a93bChris Banes 19f933672168f6deff5e3636584bec735416b5a93bChris Banes 20f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.content.res.Resources; 21f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.content.res.Resources.Theme; 22f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.support.annotation.Nullable; 23f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.view.View; 24f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.view.ViewGroup; 25f933672168f6deff5e3636584bec735416b5a93bChris Banesimport android.widget.SpinnerAdapter; 26f933672168f6deff5e3636584bec735416b5a93bChris Banes 27f933672168f6deff5e3636584bec735416b5a93bChris Banes/** 28f933672168f6deff5e3636584bec735416b5a93bChris Banes * An extension of SpinnerAdapter that is capable of inflating drop-down views 29f933672168f6deff5e3636584bec735416b5a93bChris Banes * against a different theme than normal views. 30f933672168f6deff5e3636584bec735416b5a93bChris Banes * <p> 31f933672168f6deff5e3636584bec735416b5a93bChris Banes * Classes that implement this interface should use the theme provided to 32f933672168f6deff5e3636584bec735416b5a93bChris Banes * {@link #setDropDownViewTheme(Theme)} when creating views in 33f933672168f6deff5e3636584bec735416b5a93bChris Banes * {@link SpinnerAdapter#getDropDownView(int, View, ViewGroup)}. 34f933672168f6deff5e3636584bec735416b5a93bChris Banes */ 35f933672168f6deff5e3636584bec735416b5a93bChris Banespublic interface ThemedSpinnerAdapter extends SpinnerAdapter { 36f933672168f6deff5e3636584bec735416b5a93bChris Banes /** 37f933672168f6deff5e3636584bec735416b5a93bChris Banes * Sets the {@link Resources.Theme} against which drop-down views are 38f933672168f6deff5e3636584bec735416b5a93bChris Banes * inflated. 39f933672168f6deff5e3636584bec735416b5a93bChris Banes * 40f933672168f6deff5e3636584bec735416b5a93bChris Banes * @param theme the context against which to inflate drop-down views, or 41f933672168f6deff5e3636584bec735416b5a93bChris Banes * {@code null} to use the default theme 42f933672168f6deff5e3636584bec735416b5a93bChris Banes * @see SpinnerAdapter#getDropDownView(int, View, ViewGroup) 43f933672168f6deff5e3636584bec735416b5a93bChris Banes */ 44f933672168f6deff5e3636584bec735416b5a93bChris Banes void setDropDownViewTheme(@Nullable Resources.Theme theme); 45f933672168f6deff5e3636584bec735416b5a93bChris Banes 46f933672168f6deff5e3636584bec735416b5a93bChris Banes /** 47f933672168f6deff5e3636584bec735416b5a93bChris Banes * Returns the value previously set by a call to 48f933672168f6deff5e3636584bec735416b5a93bChris Banes * {@link #setDropDownViewTheme(Theme)}. 49f933672168f6deff5e3636584bec735416b5a93bChris Banes * 50f933672168f6deff5e3636584bec735416b5a93bChris Banes * @return the {@link Resources.Theme} against which drop-down views are 51f933672168f6deff5e3636584bec735416b5a93bChris Banes * inflated, or {@code null} if one has not been explicitly set 52f933672168f6deff5e3636584bec735416b5a93bChris Banes */ 53f933672168f6deff5e3636584bec735416b5a93bChris Banes @Nullable 54f933672168f6deff5e3636584bec735416b5a93bChris Banes Resources.Theme getDropDownViewTheme(); 55f933672168f6deff5e3636584bec735416b5a93bChris Banes} 56