前言
效果圖如下


TabLayout 是Android com.android.support:design庫的一個(gè)控件,詳細(xì)了解可以自行谷歌。
下面主要介紹如何使用
步驟
1.添加com.android.support:design引用庫。添加方法點(diǎn)擊工具欄上的Project Structure圖標(biāo)。

2.創(chuàng)建一個(gè)xml布局并使用TabLayout 注意需要結(jié)合ViewPager控件一起使用 ,布局如下
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/view_pager" android:layout_weight="1"> </android.support.v4.view.ViewPager> <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tab" app:tabBackground="@color/tab_background" app:tabMode="fixed" style="@style/MyCustomTabLayout"> </android.support.design.widget.TabLayout> </LinearLayout>
相關(guān)的style如下
MyCustomTabLayout
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> <item name="tabIndicatorColor">?attr/colorAccent</item> <item name="tabIndicatorHeight">0dp</item> <!--<item name="tabPaddingStart">12dp</item>--> <item name="tabTextColor">#6b7984</item> <item name="tabPaddingEnd">12dp</item> <item name="tabSelectedTextColor">#f7554a</item> </style>
相關(guān)的arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="tab_titles"> <item>首頁</item> <item>惠存金</item> <item>網(wǎng)點(diǎn)</item> <item>發(fā)現(xiàn)</item> <item>我的</item> </string-array> </resources>
相關(guān)的drawable
tab1.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ico_1_sel" android:state_selected="true" /> <item android:drawable="@drawable/ico_1" /> </selector>
3.編寫核心代碼如下
MainActivity.Java
import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.KeyEvent; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { //String[] tabTitle = {"首頁", "惠存金", "網(wǎng)點(diǎn)", "發(fā)現(xiàn)", "我的"}; String[] tabTitle = getResources().getStringArray(R.array.tab_titles); List<Fragment> fragmentList = new ArrayList<>(); fragmentList.add(new BlankFragment1()); fragmentList.add(new BlankFragment2()); fragmentList.add(new BlankFragment3()); fragmentList.add(new BlankFragment4()); fragmentList.add(new BlankFragment5()); ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList, tabTitle)); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); TabLayout tabLayout = (TabLayout) findViewById(R.id.tab); tabLayout.setupWithViewPager(viewPager); for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); Drawable d = null; switch (i) { case 0: d = getResources().getDrawable(R.drawable.tab1); break; case 1: d = getResources().getDrawable(R.drawable.tab2); break; case 2: d = getResources().getDrawable(R.drawable.tab3); break; case 3: d = getResources().getDrawable(R.drawable.tab4); break; case 4: d = getResources().getDrawable(R.drawable.tab5); break; } tab.setIcon(d); } } } FragmentPagerAdapter.java
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.List; /** * Created by aoc on 2017/2/4. */ public class MyFragmentPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList; private String[] titles; public MyFragmentPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragmentList, String[] titles) { super(fragmentManager); this.fragmentList = fragmentList; this.titles = titles; } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return titles[position]; } } 以上所述是小編給大家介紹的Android TabLayout實(shí)現(xiàn)底部菜單導(dǎo)航支持左右滑動(dòng)功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注