android之底部导航页NavigationTabBar
效果图片展示
1、配置依赖包
compile 'devlight.io:navigationtabbar:1.2.5'
2、布局中使用
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" android:background="#423752" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/vp_horizontal_ntb" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> <devlight.io.library.ntb.NavigationTabBar android:id="@+id/ntb_horizontal" android:layout_width="match_parent" android:layout_height="60dp" app:ntb_badge_gravity="top" app:ntb_badge_position="right" app:ntb_badged="true" app:ntb_scaled="true" app:ntb_tinted="true" app:ntb_title_mode="all" app:ntb_titled="true" app:ntb_swiped="true"/> </LinearLayout>3、代码中属性配置
import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import devlight.io.library.ntb.NavigationTabBar; import java.util.ArrayList; public class HorizontalNtbActivity extends Activity { @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_horizontal_ntb); initUI(); } private void initUI() { final ViewPager viewPager = (ViewPager) findViewById(R.id.vp_horizontal_ntb); viewPager.setAdapter(new PagerAdapter() { @Override public int getCount() { return 5; } @Override public boolean isViewFromObject(final View view, final Object object) { return view.equals(object); } @Override public void destroyItem(final View container, final int position, final Object object) { ((ViewPager) container).removeView((View) object); } @Override public Object instantiateItem(final ViewGroup container, final int position) { final View view = LayoutInflater.from( getBaseContext()).inflate(R.layout.item_vp, null, false); final TextView txtPage = (TextView) view.findViewById(R.id.txt_vp_item_page); txtPage.setText(String.format("Page #%d", position)); container.addView(view); return view; } }); final String[] colors = getResources().getStringArray(R.array.default_preview); final NavigationTabBar navigationTabBar = (NavigationTabBar) findViewById(R.id.ntb_horizontal); final ArrayList<NavigationTabBar.Model> models = new ArrayList<>(); models.add( new NavigationTabBar.Model.Builder( getResources().getDrawable(R.drawable.ic_first), Color.parseColor(colors[0])) .selectedIcon(getResources().getDrawable(R.drawable.ic_sixth)) .title("Heart") .badgeTitle("NTB") .build() ); models.add( new NavigationTabBar.Model.Builder( getResources().getDrawable(R.drawable.ic_second), Color.parseColor(colors[1])) // .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) .title("Cup") .badgeTitle("with") .build() ); models.add( new NavigationTabBar.Model.Builder( getResources().getDrawable(R.drawable.ic_third), Color.parseColor(colors[2])) .selectedIcon(getResources().getDrawable(R.drawable.ic_seventh)) .title("Diploma") .badgeTitle("state") .build() ); models.add( new NavigationTabBar.Model.Builder( getResources().getDrawable(R.drawable.ic_fourth), Color.parseColor(colors[3])) // .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) .title("Flag") .badgeTitle("icon") .build() ); models.add( new NavigationTabBar.Model.Builder( getResources().getDrawable(R.drawable.ic_fifth), Color.parseColor(colors[4])) .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth)) .title("Medal") .badgeTitle("777") .build() ); navigationTabBar.setModels(models); navigationTabBar.setViewPager(viewPager, 2); navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) { } @Override public void onPageSelected(final int position) { navigationTabBar.getModels().get(position).hideBadge(); } @Override public void onPageScrollStateChanged(final int state) { } }); navigationTabBar.postDelayed(new Runnable() { @Override public void run() { for (int i = 0; i < navigationTabBar.getModels().size(); i++) { final NavigationTabBar.Model model = navigationTabBar.getModels().get(i); navigationTabBar.postDelayed(new Runnable() { @Override public void run() { model.showBadge(); } }, i * 100); } } }, 500); } }颜色资源配置(values下arrays中配置)
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="default_preview"> <item>#df5a55</item> <item>#f9bb72</item> <item>#76afcf</item> <item>#dd6495</item> <item>#72d3b4</item> </string-array> </resources>更多效果及源码下载参考github地址:https://github.com/Devlight/NavigationTabBar