TabLayout和ViewPager基础使用

来源:互联网 发布:元数据 数据元 编辑:程序博客网 时间:2024/06/06 10:41

常用的属性和方法

TabLayout常用的属性: - app:tabSelectedTextColor:Tab被选中字体的颜色 - app:tabTextColor:Tab未被选中字体的颜色 - app:tabIndicatorColor:Tab指示器下标的颜色TabLayout常用的方法:addTab(TabLayout.Tab tab, int position, boolean setSelected) 增加选项卡到 layout 中addTab(TabLayout.Tab tab, boolean setSelected) 同上addTab(TabLayout.Tab tab) 同上getTabAt(int index) 得到选项卡getTabCount() 得到选项卡的总个数getTabGravity() 得到 tab 的 GravitygetTabMode() 得到 tab 的模式getTabTextColors() 得到 tab 中文本的颜色newTab() 新建个 tabremoveAllTabs() 移除所有的 tabremoveTab(TabLayout.Tab tab) 移除指定的 tabremoveTabAt(int position) 移除指定位置的 tabsetOnTabSelectedListener(TabLayout.OnTabSelectedListener onTabSelectedListener) 为每个 tab 增加选择监听器setScrollPosition(int position, float positionOffset, boolean updateSelectedText) 设置滚动位置setTabGravity(int gravity) 设置 GravitysetTabMode(int mode) 设置 Mode,有两种值:TabLayout.MODE_SCROLLABLETabLayout.MODE_FIXED分别表示当tab的内容超过屏幕宽度是否支持横向水平滑动,第一种支持滑动,第二种不支持,默认不支持水平滑动。setTabTextColors(ColorStateList textColor) 设置 tab 中文本的颜色setTabTextColors(int normalColor, int selectedColor) 设置 tab 中文本的颜色 默认 选中setTabsFromPagerAdapter(PagerAdapter adapter) 设置 PagerAdaptersetupWithViewPager(ViewPager viewPager) 和 ViewPager 联动

代码示例
布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <android.support.design.widget.TabLayout        android:id="@+id/tabLayout"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" /></LinearLayout>

代码

import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List<Fragment> fragList = new ArrayList<>();    private List<String> strList = new ArrayList<>();    private ViewPager viewPager;    private TabLayout tabLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = findViewById(R.id.viewPager);        tabLayout = (TabLayout) findViewById(R.id.tabLayout);        initData();        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {            @Override            public Fragment getItem(int position) {                return fragList.get(position);            }            @Override            public int getCount() {                return fragList.size();            }            @Override            public CharSequence getPageTitle(int position) {                return strList.get(position);            }        });         //setTabMode(int mode) 设置 Mode,有两种值:        // TabLayout.MODE_SCROLLABLE和TabLayout.MODE_FIXED        // 分别表示当tab的内容超过屏幕宽度是否支持横向水平滑动,第一种支持滑动,第二种不支持,默认不支持水平滑动。        //tabLayout.setTabMode(TabLayout.MODE_FIXED);        tabLayout.setupWithViewPager(viewPager);    }    private void initData() {        for (int i = 0; i < 5; i++) {            fragList.add(new Fragment1());            strList.add("xxx" + i);        }    }}
原创粉丝点击