Android 消息数显示+配合ViewPager

 

首先看下效果图 

 因为公司要求做一个oa 但是需要有消息提醒 辗转反侧 彻夜难眠  终于在网上看到一个demo解决我这个问题。

 

参考https://github.com/tyzlmjj/PagerBottomTabStrip

这个demo 这个大佬写的不错  值得借鉴。

首先添加依赖

   去demo    pager-bottom-tab-strip把这个依赖到自己的项目

compile 'me.leolin:ShortcutBadger:1.1.4@aar'
implementation project(':pager-bottom-tab-strip')

然后在你的主页布局里添加自定义布局      自定义的 ViewPager和PageNavigationView

<fengda.com.fengdaoa.widget.NoTouchViewPager
    android:id="@+id/viewPager"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/tab" />

<me.majiajie.pagerbottomtabstrip.PageNavigationView
    android:id="@+id/tab"
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:layout_alignParentBottom="true"
    android:background="@drawable/tab_background"
    android:elevation="8dp" />

 然后再主页代码里  我这里直接上代码了。

public class MainActivity extends AppCompatActivity  {
    private List<Fragment> fragments = new ArrayList<>();
    public static int widthPixels;
    public static Activity a;
    private PageNavigationView tab;
    private NavigationController navigationController;
    private CommonNetwork commonNetwork;
    DecodeJSON_Msg_UnRead_Count decodeJSON_msgList;
    private boolean StopUpdate;

    DecodeJSON_Show_Index decodeJSON_show_index;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
   
        a = this;
        fragments = getFragments();
        tab = findViewById(R.id.tab);
        navigationController = tab.custom()
                .addItem(newItem(R.drawable.no_xiaoxi, R.drawable.click_xiaoxi, "消息"))
                .addItem(newItem(R.drawable.no_shijian, R.drawable.click_shijian, "大事件"))
                .addItem(newItem(R.drawable.no_gongzuo, R.drawable.click__gongzuo, "工作"))
                .addItem(newItem(R.drawable.no_wode, R.drawable.click_wode, "我的"))
                .build();
        ViewPager viewPager = findViewById(R.id.viewPager);
        viewPager.setAdapter(new MyViewPagerAdapters(getSupportFragmentManager(), fragments));
        //自动适配ViewPager页面切换
        navigationController.setupWithViewPager(viewPager);
        //从第二页开始加载
//       navigationController.setSelect(2);
        //设置显示小圆点
        navigationController.setHasMessage(1, true);
        //获取屏幕宽度  宽度引用到头像上传的框的宽度
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        widthPixels = dm.widthPixels;


    }

    public List<Fragment> getFragments() {
        fragments.add(MessageFragments.newInstance());
        fragments.add(CustomerFragment.newInstance());
        fragments.add(ContactsFragment.newInstance());
        fragments.add(MyFragment.newInstance());
        return fragments;
    }

    //创建一个Item
    private BaseTabItem newItem(int drawable, int checkedDrawable, String text) {
        NormalItemView normalItemView = new NormalItemView(this);
        normalItemView.initialize(drawable, checkedDrawable, text);
        normalItemView.setTextDefaultColor(getResources().getColor(R.color.main_line));
        normalItemView.setTextCheckedColor(getResources().getColor(R.color.status_bar));
        return normalItemView;
    }
 
}

 现在页面就实现了  切换    我需要四个页面切换  所以写了四个 这里你需要几个 就写几个Fragment添加进去

现在设置消息数

//设置消息数
navigationController.setMessageNumber(0, 1);

先说明一下  第一个参数0 代表你添加的第几个参数  我需要的是第一个  所以是0

                    第二个参数是显示的消息数量  设置0就不显示 

 

这样就大功告成了。。。不喜勿喷 谢谢

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值