tablayout结合动态创建fragment

第一添加依赖

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>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值