Android實(shí)現(xiàn)面包屑效果,支持Fragment聯(lián)動(dòng)


使用方式
<com.tinytongtong.breadcrumbs.BreadCrumbsViewandroid:id="@+id/breadCrumbs"android:layout_width="match_parent"android:layout_height="wrap_content" />
breadCrumbsView.setOnTabListener(new BreadCrumbsView.OnTabListener() {@Overridepublic void onAdded(BreadCrumbsView.Tab tab) {Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onAdded tab:" + tab.getIndex());addFragment(tab);}@Overridepublic void onActivated(BreadCrumbsView.Tab tab) {Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onActivated tab:" + tab.getIndex());}@Overridepublic void onRemoved(BreadCrumbsView.Tab tab) {Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onRemoved tab:" + tab.getIndex());removeLastFragment();}});
private void addFragment(BreadCrumbsView.Tab tab) {//在這里添加你自己的Fragment,tab#getValue返回的是創(chuàng)建Tab時(shí)傳入的數(shù)據(jù),可以根據(jù)這些數(shù)據(jù)創(chuàng)建你自己想要的FragmentFragment fragment = BlankFragment.newInstance(String.format("我是第%d個(gè)Fragment", tab.getIndex()), "" + tab.getIndex());getSupportFragmentManager().beginTransaction().add(R.id.container, fragment, String.valueOf(tab.getIndex())).show(fragment).addToBackStack(null).commit();fragments.add(fragment);}
/*** 移除最后一個(gè)Fragment,顯示倒數(shù)第二個(gè)Fragment*/private void removeLastFragment() {if (fragments != null && fragments.size() > 1) {getSupportFragmentManager().popBackStackImmediate();fragments.removeLast();FragmentManager fragmentManager = getSupportFragmentManager();fragmentManager.beginTransaction().show(fragments.getLast()).commit();fragmentManager.executePendingTransactions();}}
源碼地址:
評(píng)論
圖片
表情
