美文网首页
android TabLayout使用

android TabLayout使用

作者: GreatWalks | 来源:发表于2018-05-22 21:35 被阅读16次

    TabLayout + ViewPage 使用

    步骤:

    • 创建TabLayout
    • 创建ViewPage 添加xml布局
    • TabLayout.setupWithViewPager(viewPager); 连接

    TabLayout的基本使用方式

    1.在 xml 布局中加入该控件:

    //创建TabLayout
    <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    
    
     // 创建viewPage        
            <android.support.v4.view.ViewPager    
                android:id="@+id/friend_viewpager"
                android:layout_width="wrap_content
                android:layout_height="wrap_conten
                android:layout_gravity="center" />
     
    
    

    2.在代码中

     
    //TabLayout
     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
            tabLayout.addTab(tabLayout.newTab().setText("朋友圈"));
            tabLayout.addTab(tabLayout.newTab().setText("朋友"));
    
    
            tabLayout.setupWithViewPager(viewPager);
    
    
            tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
    
                }
                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
    
                }
                @Override
                public void onTabReselected(TabLayout.Tab tab) {
                }
            });
    
            tabLayout.getTabAt(0).setText("朋友圈");
            tabLayout.getTabAt(1).setText("朋友");
    
     
    
     
    
    //ViewPage
     ViewPager viewPager = (ViewPager) findViewById(R.id.friend_viewpager);
            LayoutInflater inflater = getLayoutInflater();
    
    
          //  首先需要创建xml 布局
          //  然后加载view
            View view01 = inflater.inflate(R.layout.viewpage_friend,null);
            View view02 = inflater.inflate(R.layout.viewpage_friendcircle,null);
    
     
            final  List<View> viewList = new ArrayList<View>();
                viewList.add(view01);
                viewList.add(view02);
    
                   PagerAdapter pagerAdapter = new PagerAdapter() {
                    @Override
                    public boolean isViewFromObject(View arg0, Object arg1) {
                        // TODO Auto-generated method stub
                        return arg0 == arg1;
                    }
    
                    @Override
                    public int getCount() {
                        // TODO Auto-generated method stub
                        return viewList.size();
                    }
    
                    @Override
                    public void destroyItem(ViewGroup container, int position,
                                            Object object) {
                        // TODO Auto-generated method stub
                        container.removeView(viewList.get(position));
                    }
    
                    @Override
                    public Object instantiateItem(ViewGroup container, int position) {
                        // TODO Auto-generated method stub
                        container.addView(viewList.get(position));
                        return viewList.get(position);
                    }
                };
                viewPager.setAdapter(pagerAdapter);
    
    
    

    TabLayout xml布局 属性

    1.改变选中字体的颜色
    app:tabSelectedTextColor="@android:color/holo_orange_light"
    2.改变未选中字体的颜色
    app:tabTextColor="@color/colorPrimary"
    3.改变指示器下标的颜色
    app:tabIndicatorColor="@android:color/holo_orange_light"
    4.改变整个TabLayout的颜色
    app:tabBackground="color"
    

    TabLayout 方法
    监听事件
    选中了某个tab的监听事件OnTabSelectedListener():

     TabLayout tabLayout = (TabLayout)     findViewById(R.id.tabLayout);
     tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
     //监听事件
     tabLayout.addOnTabSelectedListener(new  TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
    
                }
                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
    
                }
                @Override
                public void onTabReselected(TabLayout.Tab tab) {
    
                }
            });
    

    关于 关联ViewPage 后 TabLayout 标签 消失
    http://www.cnblogs.com/donghaifeng-2016/p/6369729.html

    相关文章

      网友评论

          本文标题:android TabLayout使用

          本文链接:https://www.haomeiwen.com/subject/gvbhjftx.html