集成ViewPagerIndicator第三方库实现顶部导航栏

xiaoxiao2021-02-28  85

ViewPagerIndicator的集成

1.下载第三方库https://github.com/JakeWharton/ViewPagerIndicator

2.将案列导入as中,运行案例

3.当前项目关联库

4.写布局文件

<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical"   android:layout_width="fill_parent"   android:layout_height="fill_parent">   <com.viewpagerindicator.TabPageIndicator       android:id="@+id/indicator"       android:background="@drawable/base_action_bar_bg"       android:layout_height="wrap_content"       android:layout_width="fill_parent"       />   <android.support.v4.view.ViewPager       android:id="@+id/pager"       android:layout_width="fill_parent"       android:layout_height="0dp"       android:layout_weight="1"       /> </LinearLayout>

5.使用

//实例化TabPageIndicator然后设置ViewPager与之关联   TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);   indicator.setViewPager(pager);       //如果我们要对ViewPager设置监听,用indicator设置就行了

6.在ViewPager的适配器中重写

@Override   public CharSequence getPageTitle(int position) {       return children.get(position).getTitle(); }

7.此时indicator还是没有排版的状态,要进行样式的设置,在工程的功能清单文件,对应的Activity配置样式

<activity android:name=".MainActivity"           android:theme="@style/Theme.PageIndicatorDefaults"/>

8.修改样式

<style name="Widget.TabPageIndicator" parent="Widget">       <item name="android:gravity">center</item>       <item name="android:background">@drawable/vpi__tab_indicator</item>       <item name="android:paddingLeft">22dip</item>       <item name="android:paddingRight">22dip</item>       <item name="android:paddingTop">12dp</item>       <item name="android:paddingBottom">12dp</item>       <item name="android:textAppearance">@style/TextAppearance.TabPageIndicator</item>       <item name="android:textSize">16sp</item>       <item name="android:textColor">@drawable/vpi__tab_textcolor_indicator</item>       <item name="android:maxLines">1</item>   </style>

9.修改后的 <item name="android:background">@drawable/vpi__tab_indicator</item>

<selector xmlns:android="http://schemas.android.com/apk/res/android">   <!-- Non focused states -->   <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />   <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/news_tab_item_bg_select" />   <!-- Focused states -->   <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />   <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/news_tab_item_bg_select" /> <!-- Pressed --> <!--   Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/news_tab_item_bg_select" /> <!--   Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/news_tab_item_bg_select" />

</selector>

10.文字颜色

<item name="android:textColor">@drawable/vpi__tab_textcolor_indicator</item>

<selector xmlns:android="http://schemas.android.com/apk/res/android">   <!-- Non focused states -->   <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:color="#000000" />   <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:color="#ff0000" />   <!-- Focused states -->   <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:color="#000000" />   <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:color="#ff0000" />   <!-- Pressed -->   <!--   Non focused states -->   <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:color="#000000" />   <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:color="#ff0000" />   <!--   Focused states -->   <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:color="#000000" />   <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:color="#ff0000" /> </selector>
转载请注明原文地址: https://www.6miu.com/read-72634.html

最新回复(0)