日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

TabLayout实现顶部导航栏(1)

發(fā)布時(shí)間:2024/4/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TabLayout实现顶部导航栏(1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

TabLayout是android.support.design里的一個(gè)控件,使用它可以很方便的做出頂部導(dǎo)航和底部導(dǎo)航。類似于這樣的,能設(shè)置選中時(shí)字體的顏色和選中時(shí)的圖片。

?

?

首先我們?cè)?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>

?



?頂部是一個(gè)TabLayout,可以設(shè)置background。app:tabIndicatorColor是設(shè)置指示器的背景顏色,
app:tabIndicatorHeight設(shè)置指示器的高度,
app:tabSelectedTextColor是選中時(shí)文本的顏色,app:tabTextColor是普通狀態(tài)的文本顏色,
app:tabMode是是否可滑動(dòng),有兩個(gè)fixed和scrollable,fixed是固定的,scrollable是類似于今日頭條那種可以滑動(dòng)的。

?


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[]{"關(guān)注", "推薦", "視頻", "新時(shí)代", "圖片", "熱點(diǎn)"};@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);//設(shè)置文本在選中和為選中時(shí)候的顏色 // tabLayout.setSelectedTabIndicatorColor(Color.WHITE);//設(shè)置選中時(shí)的指示器的顏色 // tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);//可滑動(dòng),默認(rèn)是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設(shè)置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對(duì)應(yīng)的title。* @param position* @return*/@Overridepublic CharSequence getPageTitle(int position) {if (titles != null && titles.length>0){return titles[position];}return null;}/*** 描述:獲取數(shù)量.* @return*/@Overridepublic int getCount() {return mFragmentList.size();} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/changyiqiang/p/8876688.html

總結(jié)

以上是生活随笔為你收集整理的TabLayout实现顶部导航栏(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。