第一添加依赖
implementation 'com.android.support:design:26.1.0'
第二步使用
2.1得到控件
@BindView(R.id.fra_tab_layout) TabLayout tabLayout;2.2添加tab页还可以添加图片的百度很多
for (int i = 0; i < title.length; i++) { tabLayout.addTab(tabLayout.newTab().setText(title[i])); }2.3实现点击事件并注册
implements TabLayout.OnTabSelectedListener
tabLayout.setOnTabSelectedListener(this);2.4的到fragment管理器
transaction = fm.beginTransaction();
2.5在实现的方法里动态创建
@Override public void onTabSelected(TabLayout.Tab tab) { // pager.setCurrentItem(tab.getPosition()); transaction.replace(R.id.reamlayout,new FraMessage()); transaction.commit(); }
其中的FraMessage是你自己建的子fragment的实现类
完整代码
package fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import adapter.FraAdapter; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by wangyajie on 2017/11/4. */ public class Framain extends Fragment implements TabLayout.OnTabSelectedListener { @BindView(R.id.fra_tab_layout) TabLayout tabLayout; String[] title = {"数据新闻", "快讯", "头条", "精编公告", "美股", "港股", "基金", "理财"}; private FraAdapter adapter; private FragmentManager fm; private View view; private FragmentTransaction transaction; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fra, null); ButterKnife.bind(this, view); fm = getFragmentManager(); transaction = fm.beginTransaction(); inittab(); return view; } private void inittab() { // 循环添加tab页 for (int i = 0; i < title.length; i++) { tabLayout.addTab(tabLayout.newTab().setText(title[i])); } tabLayout.setOnTabSelectedListener(this); // 加载第一页的数据 transaction.replace(R.id.reamlayout,new FraMessage()); transaction.commit(); } @Override public void onTabSelected(TabLayout.Tab tab) { // pager.setCurrentItem(tab.getPosition()); transaction.replace(R.id.reamlayout,new FraMessage()); transaction.commit(); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }
布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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.support.design.widget.TabLayout android:id="@+id/fra_tab_layout" android:layout_width="match_parent" android:layout_height="48dp" android:background="#ffffff" app:tabIndicatorColor="#FD5055" app:tabSelectedTextColor="#FD5055" > </android.support.design.widget.TabLayout> <FrameLayout android:id="@+id/reamlayout" android:layout_below="@+id/fra_tab_layout" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </RelativeLayout>