栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android TabLayou+ViewPage 加载Fragment 点击标题文字变大

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android TabLayou+ViewPage 加载Fragment 点击标题文字变大

1.TabLayou+ViewPage xml 布局



    

    

 2.TabLayou自己是没有该属性的,所以我们就需要用到自定义布局,创建一个xml布局,布局里编写一个TextView。



 
3.Activity代码 
public class MainActivity extends AppCompatActivity {

    private TabLayout mTabLayout;
    private ViewPager mViewPage;
    private ArrayList mList = new ArrayList<>();
    private TextView inflate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTabLayout = findViewById(R.id.main_tablayout);
        mViewPage = findViewById(R.id.main_viewpage);

        //添加标题
        mList.add("全部");
        mList.add("男装");
        mList.add("女装");

        //设置ViewPage适配器
        mViewPage.setAdapter(new MyViewPageAdapter(getSupportFragmentManager()));
        //设置Tablayout联动
        mTabLayout.setupWithViewPager(mViewPage);

        //获取当前选中Tablayout
        TabLayout.Tab mTabLayoutTabAt = mTabLayout.getTabAt(mTabLayout.getSelectedTabPosition());
        //设置text
        inflate = (TextView) LayoutInflater.from(this).inflate(R.layout.text_layout, null);
        //设置点击后的字体大小
        inflate.setTextSize(20);
        //设置点击的内容
        inflate.setText(mTabLayoutTabAt.getText());
        //获取布局
        mTabLayoutTabAt.setCustomView(inflate);


        //TabLayout点击选中监听事件
        mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            //选中的
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                //设置点击的内容
                inflate.setText(tab.getText());
                //获取布局
                tab.setCustomView(inflate);
            }

            //未选中的
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                tab.setCustomView(null);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
    }

    //TabLayout适配器
    private class MyViewPageAdapter extends FragmentStatePagerAdapter {

        public MyViewPageAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            MyFragment myFragment = new MyFragment();
            //Bundle 传值
            Bundle bundle = new Bundle();
            bundle.putString("tabName", mList.get(position));
            myFragment.setArguments(bundle);
            return myFragment;
        }

        @Override
        public int getCount() {
            return mList.size();
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            return mList.get(position);
        }

    }
}

4.Fragment代码

public class MyFragment extends Fragment {

    private View inflate;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        inflate = inflater.inflate(R.layout.fragment_my, container, false);
        TextView mText = inflate.findViewById(R.id.my_text);
        Bundle arguments = getArguments();
        String tabName = arguments.getString("tabName");
        mText.setText(tabName);
        return inflate;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号