TabLayout实现顶部导航栏(1)
生活随笔
收集整理的這篇文章主要介紹了
TabLayout实现顶部导航栏(1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TabLayout是android.support.design里的一個控件,使用它可以很方便的做出頂部導航和底部導航。類似于這樣的,能設置選中時字體的顏色和選中時的圖片。
?
?
首先我們在 build.gradle中引入?
compile 'com.android.support:design:23.2.1'布局文件如下:
<?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"android:orientation="vertical"><android.support.design.widget.TabLayoutandroid:id="@+id/tab"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#32CD32"app:tabIndicatorColor="#f00"app:tabMode="fixed"app:tabSelectedTextColor="#444"app:tabTextColor="#fff"></android.support.design.widget.TabLayout><android.support.v4.view.ViewPagerandroid:id="@+id/vp"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></android.support.v4.view.ViewPager></LinearLayout>?
?頂部是一個TabLayout,可以設置background。app:tabIndicatorColor是設置指示器的背景顏色,
app:tabIndicatorHeight設置指示器的高度,
app:tabSelectedTextColor是選中時文本的顏色,app:tabTextColor是普通狀態的文本顏色,
app:tabMode是是否可滑動,有兩個fixed和scrollable,fixed是固定的,scrollable是類似于今日頭條那種可以滑動的。
?
activity代碼如下:
import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.design.widget.TabLayout;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {private TabLayout tabLayout;private ViewPager vp;private String[] titles = new String[]{"關注", "推薦", "視頻", "新時代", "圖片", "熱點"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tabLayout = (TabLayout) findViewById(R.id.tab);vp = (ViewPager) findViewById(R.id.vp);// tabLayout.setTabTextColors(Color.WHITE, Color.GRAY);//設置文本在選中和為選中時候的顏色 // tabLayout.setSelectedTabIndicatorColor(Color.WHITE);//設置選中時的指示器的顏色 // tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);//可滑動,默認是FIXEDList<Fragment> fragments = new ArrayList<>();fragments.add(new BlankFragment());fragments.add(new BlankFragment());fragments.add(new BlankFragment());fragments.add(new BlankFragment());fragments.add(new BlankFragment());fragments.add(new BlankFragment());TitleFragmentPagerAdapter adapter = new TitleFragmentPagerAdapter(getSupportFragmentManager(), fragments, titles);vp.setAdapter(adapter);tabLayout.setupWithViewPager(vp);} }
?
TitleFragmentPagerAdapter 適配器代碼: mport android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.List;/*** Created by yiqiang on 2018/4/18.*/public class TitleFragmentPagerAdapter extends FragmentPagerAdapter {private List<Fragment> mFragmentList;private String [] titles;public TitleFragmentPagerAdapter(FragmentManager fm, List<Fragment> mFragmentList) {super(fm);this.mFragmentList = mFragmentList;}/*** titles是給TabLayout設置title用的* @param fm* @param mFragmentList* @param titles*/public TitleFragmentPagerAdapter(FragmentManager fm, List<Fragment> mFragmentList, String[] titles) {super(fm);this.mFragmentList = mFragmentList;this.titles = titles;}/*** 描述:獲取索引位置的Fragment.* @param position* @return*/@Overridepublic Fragment getItem(int position) {Fragment fragment = null;if (position < mFragmentList.size()){fragment = mFragmentList.get(position);}else{fragment = mFragmentList.get(0);}return fragment;}/*** 返回viewpager對應的title。* @param position* @return*/@Overridepublic CharSequence getPageTitle(int position) {if (titles != null && titles.length>0){return titles[position];}return null;}/*** 描述:獲取數量.* @return*/@Overridepublic int getCount() {return mFragmentList.size();} }?
轉載于:https://www.cnblogs.com/changyiqiang/p/8876688.html
總結
以上是生活随笔為你收集整理的TabLayout实现顶部导航栏(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORA-01659: 无法分配超出 7
- 下一篇: yum安装MariaDb10.2国内yu