国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android TabLayout實(shí)現(xiàn)底部菜單導(dǎo)航支持左右滑動(dòng)功能

2019-10-23 19:45:15
字體:
供稿:網(wǎng)友

  前言

效果圖如下

tablayout底部導(dǎo)航,tablayout滑動(dòng)

 tablayout底部導(dǎo)航,tablayout滑動(dòng)

TabLayout 是Android com.android.support:design庫的一個(gè)控件,詳細(xì)了解可以自行谷歌。

下面主要介紹如何使用

步驟

1.添加com.android.support:design引用庫。添加方法點(diǎn)擊工具欄上的Project Structure圖標(biāo)。

tablayout底部導(dǎo)航,tablayout滑動(dòng)

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)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 花莲市| 新源县| 康乐县| 沙田区| 太和县| 柏乡县| 长宁县| 富平县| 三河市| 新营市| 三门县| 肇源县| 沁水县| 高淳县| 南平市| 邓州市| 霍山县| 江都市| 隆尧县| 阳新县| 海林市| 金堂县| 灵丘县| 松滋市| 天峨县| 日土县| 乌苏市| 科技| 鹰潭市| 平江县| 松阳县| 锡林浩特市| 新津县| 勐海县| 南丰县| 娱乐| 景宁| 濉溪县| 沁源县| 寿阳县| 赣榆县|