14cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes/*
24cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * Copyright (C) 2016 The Android Open Source Project
34cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *
44cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
54cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * you may not use this file except in compliance with the License.
64cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * You may obtain a copy of the License at
74cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *
84cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
94cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *
104cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * Unless required by applicable law or agreed to in writing, software
114cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
124cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * See the License for the specific language governing permissions and
144cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * limitations under the License.
154cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes */
164cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
174cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banespackage android.support.design.widget;
184cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
194cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.content.Context;
204cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.graphics.drawable.Drawable;
214cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.support.design.R;
224cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.support.v7.widget.TintTypedArray;
234cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.util.AttributeSet;
244cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banesimport android.view.View;
254cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
264cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes/**
274cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * TabItem is a special 'view' which allows you to declare tab items for a {@link TabLayout}
284cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * within a layout. This view is not actually added to TabLayout, it is just a dummy which allows
294cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * setting of a tab items's text, icon and custom layout. See TabLayout for more information on how
304cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * to use it.
314cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *
324cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * @attr ref android.support.design.R.styleable#TabItem_android_icon
334cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * @attr ref android.support.design.R.styleable#TabItem_android_text
344cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * @attr ref android.support.design.R.styleable#TabItem_android_layout
354cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes *
364cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes * @see TabLayout
374cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes */
384cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banespublic final class TabItem extends View {
394cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    final CharSequence mText;
404cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    final Drawable mIcon;
414cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    final int mCustomLayout;
424cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
434cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    public TabItem(Context context) {
444cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        this(context, null);
454cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    }
464cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
474cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    public TabItem(Context context, AttributeSet attrs) {
484cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        super(context, attrs);
494cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes
504cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        final TintTypedArray a = TintTypedArray.obtainStyledAttributes(context, attrs,
514cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes                R.styleable.TabItem);
524cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        mText = a.getText(R.styleable.TabItem_android_text);
534cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        mIcon = a.getDrawable(R.styleable.TabItem_android_icon);
544cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        mCustomLayout = a.getResourceId(R.styleable.TabItem_android_layout, 0);
554cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes        a.recycle();
564cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes    }
574cc50ca6952dcc35f1babd918742dbd09e3c01c7Chris Banes}