【顶部导航】Android自定义指示器实现顶部导航(三角形,线,bitmap指示器),Fragment与ViewPager的组合。

来源:互联网 发布:1吨铀能发多少电 知乎 编辑:程序博客网 时间:2024/05/17 17:18

下载配置文件

下载我给出的把他放入对应的项目目录下就ok

下载地址

效果图


这里写图片描述

简单使用


属性介绍

属性 值 备注 android:background 颜色 导航栏背景 rvp:indicator_color 颜色 指示器颜色 rvp:indicator_style bitmap(图片),line(线),square(长方形),triangle(三角形) 指示器颜色 rvp:item_count 指示器个数(1) … rvp:text_color_hightlight 字迹选中颜色 … rvp:text_color_normal 字迹默认颜色 … 高度 一般55dp …

主布局引用

<?xml version="1.0" encoding="utf-8"?><LinearLayout    android:id="@+id/activity_main"    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:rvp="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.daqsoft.fdgdg.MainActivity">    <com.daqsoft.fdgdg.RVPIndicator        android:id="@+id/indicator"        android:layout_width="match_parent"        android:layout_height="55dp"        android:background="@color/colorPrimary"        android:orientation="horizontal"        rvp:indicator_color="@color/common_bg"        rvp:indicator_style="line"        rvp:item_count="3"        rvp:text_color_hightlight="@color/white"        rvp:text_color_normal="@color/light_gray"/>    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"/></LinearLayout>

MainActivity使用

package com.daqsoft.fdgdg;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MainActivity extends AppCompatActivity {    private RVPIndicator mIndicator;    private ViewPager mViewPager;    //fragment集合    private List<Fragment> mTabContents;    private FragmentPagerAdapter mAdapter;//适配器    private List<String> mDatas;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initDatas();        configViews();    }    public void setCurrentItem(int position) {        mViewPager.setCurrentItem(position);    }    private void configViews() {        mIndicator.setTabItemTitles(mDatas);        mViewPager.setAdapter(mAdapter);        mViewPager.setOffscreenPageLimit(3);        mIndicator.setViewPager(mViewPager, 0);    }    private void initDatas() {        mDatas = Arrays.asList(getResources().getStringArray(R.array.home_tabs));        mTabContents = new ArrayList<>();        mTabContents.add(new FindFragment());        mTabContents.add(new FindFragment1());        mTabContents.add(new FindFragment2());        mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {            @Override            public int getCount() {                return mTabContents.size();            }            @Override            public Fragment getItem(int position) {                return mTabContents.get(position);            }        };    }    private void initView() {        //找控件        mIndicator = (RVPIndicator) findViewById(R.id.indicator);        mViewPager = (ViewPager) findViewById(R.id.viewpager);    }}
阅读全文
0 0
原创粉丝点击