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}