美文网首页
TabLayout解析

TabLayout解析

作者: Il_mondo | 来源:发表于2017-02-23 23:55 被阅读143次

本文主要介绍TabLayout的几种常见用法:与ViewPager的结合使用、把条目变成图片,去除下划线、仿微信询问(仿微信功能可能有点悬)...我想到的是用染色来实现,试试吧..(。・`ω´・)

一、给TabLayout添加中间分隔线

<android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/vp"
        >
        <android.support.design.widget.TabLayout
            android:id="@+id/tabl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
    </android.support.v4.view.ViewPager>

//在TabLayot中添加分隔线, 疑问为什么获取到的是线性布局?
LinearLayoutlinearLayout=(LinearLayout)tabLayout.getChildAt(0);

linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);

linearLayout.setDividerDrawable(ContextCompat.getDrawable(this,
R.drawable.layout_divider_vertical));

linearLayout.setDividerPadding(35); // 间隔线的高度,值越大线越短.
Tab tab = tabLayout.newTab();
tab.setText(list_title.get(0));
tabLayout.addTab(tab);
-------------------------------------------------------------------------
@NonNull
    public Tab newTab() {
        Tab tab = sTabPool.acquire();
        if (tab == null) {
            tab = new Tab();
        }
        tab.mParent = this;
        tab.mView = createTabView(tab);
        return tab;
    }
-------------------------------------------------------------------------
private TabView createTabView(@NonNull final Tab tab) {
        TabView tabView = mTabViewPool != null ? mTabViewPool.acquire() : null;
        if (tabView == null) {
            tabView = new TabView(getContext());
        }
        tabView.setTab(tab);
        tabView.setFocusable(true);
        tabView.setMinimumWidth(getTabMinWidth());
        return tabView;
    }
-------------------------------------------------------------------------
class TabView extends LinearLayout implements OnLongClickListener

相关文章

网友评论

      本文标题:TabLayout解析

      本文链接:https://www.haomeiwen.com/subject/zsfqwttx.html