• Android学习笔记--TabLayout的简单使用


    我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合。达到很漂亮的效果。但是TabPageIndicator是第三方的,而且比较老了,当然了现在很多大神都已经开始自己写TabPageIndicator来满足自己的需求,在2015年的google大会上,google发布了新的Android Support Design库,里面包含了几个新的控件,其中就有一个TabLayout,它就可以完成TabPageIndicator的效果,而且还是官方的,最好的是它可以兼容到2.2以上版本,包括2.2。下面我就举一个简单的例子来使用它

    fragment_item.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:app="http://schemas.android.com/apk/res-auto"
     4     android:orientation="vertical"
     5     android:layout_width="match_parent"
     6     android:layout_height="match_parent">
     7 
     8     <!--app:tabMode - fixed: 固定tab的位置,当tab数量过多时,超出屏幕范围后。无法显示更多。
     9                scrollable: tab数量超出屏幕范围,可以滚动tab,显示更多的tab-->
    10     <!-- app:tabTextAppearance="@style/design_widget_TabLayout_TextStyle"-->
    11     <!-- app:tabIndicatorColor="@color/white"                 // 下方滚动的下划线颜色-->
    12     <!--app:tabSelectedTextColor="@color/gray"               // tab被选中后,文字的颜色-->
    13     <!--app:tabTextColor="@color/white"                      // tab默认的文字颜色-->
    14     <android.support.design.widget.TabLayout
    15         android:id="@+id/tab_find_fragment_title"
    16         android:layout_width="match_parent" android:layout_height="35dp"
    17         android:background="#e4e4e4"
    18         app:tabIndicatorColor="?attr/colorPrimary"
    19         app:tabSelectedTextColor="?attr/colorPrimary"
    20         app:tabTextColor="@android:color/black" app:tabGravity="fill"
    21         android:fillViewport="false" />
    22     <!--app:tabMode="scrollable"-->
    23 
    24     <android.support.v4.view.ViewPager
    25         android:id="@+id/tab_find_fragment_find_fragment"
    26         android:layout_width="match_parent"
    27         android:layout_height="match_parent"/>
    28 
    29 </LinearLayout>
    FindAdapter.java
     1 package com.wuxianedu.ademo;
     2 
     3 import android.support.v4.app.Fragment;
     4 import android.support.v4.app.FragmentManager;
     5 import android.support.v4.app.FragmentPagerAdapter;
     6 
     7 import java.util.List;
     8 
     9 /**
    10  * Created by Administrator on 2016/10/18.
    11  * 这个Adapter我也不知道是怎么回事,但是还是要照着写出出来。。。
    12  */
    13 
    14 public class FindAdapter extends FragmentPagerAdapter {
    15     //这是标题的  第一个就显示第一个
    16     private List<String> titleList;
    17     //这个是fragmen,把集合中的fragmen都展示出来
    18     private List<Fragment> fragmentList;
    19 
    20     public FindAdapter(FragmentManager fm, List<String> titleList, List<Fragment> fragmentList) {
    21         super(fm);
    22         this.titleList = titleList;
    23         this.fragmentList = fragmentList;
    24     }
    25 
    26     @Override
    27     public android.support.v4.app.Fragment getItem(int position) {
    28         return fragmentList.get(position);
    29     }
    30 
    31     @Override
    32     public int getCount() {
    33         return titleList.size();
    34     }
    35     /**
    36      * 获取标题
    37      * @param position
    38      * @return
    39      */
    40     @Override
    41     public CharSequence getPageTitle(int position) {
    42         return titleList.get(position);
    43     }
    44 }
    FindAFragment.java

     1 package com.wuxianedu.ademo;
     2 
     3 import android.os.Bundle;
     4 import android.support.annotation.Nullable;
     5 import android.support.design.widget.TabLayout;
     6 import android.support.v4.app.Fragment;
     7 import android.support.v4.view.ViewPager;
     8 import android.view.LayoutInflater;
     9 import android.view.View;
    10 import android.view.ViewGroup;
    11 
    12 import java.util.ArrayList;
    13 import java.util.List;
    14 
    15 /**
    16  * Created by Administrator on 2016/10/18.
    17  */
    18 public class FindAFragment extends Fragment {
    19 
    20 
    21     @Nullable
    22     @Override
    23     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    24         View view = inflater.inflate(R.layout.fragment_item,null);
    25         return view;
    26     }
    27 
    28     @Override
    29     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    30         TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_find_fragment_title);
    31         ViewPager viewPager = (ViewPager) view.findViewById(R.id.tab_find_fragment_find_fragment);
    32         List<String> titellist = new ArrayList<>();
    33         titellist.add("推举项目");
    34         titellist.add("热门项目");
    35         titellist.add("最近更新");
    36         List<Fragment> fragme ntList = new ArrayList<>();
    37         fragmentList.add(new OneFragment());//这里写你自己Fragment的名字 我是三个,
    38         fragmentList.add(new TwoFragment());
    39         fragmentList.add(new OneFragment());
    40         tabLayout.setTabMode(TabLayout.MODE_FIXED);
    41         FindAAdapter findAAdapter = new FindAAdapter(getActivity().getSupportFragmentManager(),titellist,fragmentList);
    42         viewPager.setAdapter(findAAdapter);
    43         tabLayout.setupWithViewPager(viewPager);
    44         super.onViewCreated(view, savedInstanceState);
    45     }
    46 }
    MainActivity.java

     1 package com.wuxianedu.ademo;
     2 
     3 import android.support.v4.app.FragmentPagerAdapter;
     4 import android.support.v4.app.FragmentTransaction;
     5 import android.support.v7.app.AppCompatActivity;
     6 import android.os.Bundle;
     7 
     8 public class MainActivity extends AppCompatActivity {
     9 
    10     @Override
    11     protected void onCreate(Bundle savedInstanceState) {
    12         super.onCreate(savedInstanceState);
    13         setContentView(R.layout.activity_main);
    14         //往Fragment添加东西
    15         FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    16         //往Fragment添加东西
    17         fragmentTransaction.add(R.id.frame_id,new FindFragment());
    18         //往Fragment添加东西
    19         fragmentTransaction.commit();
    20     }
    21 }

    OnFragmetn.java  1 package com.wuxianedu.ademo;

     2 
     3 import android.os.Bundle;
     4 import android.support.annotation.Nullable;
     5 import android.support.v4.app.Fragment;
     6 import android.support.v4.view.ViewPager;
     7 import android.view.LayoutInflater;
     8 import android.view.View;
     9 import android.view.ViewGroup;
    10 import android.widget.TableLayout;
    11 import android.widget.TextView;
    12 
    13 import java.util.ArrayList;
    14 import java.util.List;
    15 
    16 /**
    17  * Created by terry-song on 2016/10/18.
    18  */
    19 
    20 public class OneFragment extends Fragment {
    21 
    22     @Nullable
    23     @Override
    24     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    25         View view = inflater.inflate(R.layout.fragment_test,null);
    26         return view;
    27     }
    28 
    29     @Override
    30     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    31         TextView textView = (TextView) view.findViewById(R.id.tv_show_id);
    32         textView.setText("第1个页面");
    33         super.onViewCreated(view, savedInstanceState);
    34     }
    35 }
    其他
    两个也一样,

  • 相关阅读:
    小白_开始学Scrapy__原理
    python zip()函数
    前端工程精粹(一):静态资源版本更新与缓存
    HTML 5 History API的”前生今世”
    常见的几个js疑难点,match,charAt,charCodeAt,map,search
    前端安全须知
    Html5游戏框架createJs组件--EaselJS(二)绘图类graphics
    Html5游戏框架createJs组件--EaselJS(一)
    github基本用法
    jquery ajax中事件的执行顺序
  • 原文地址:https://www.cnblogs.com/langfei8818/p/5974889.html
Copyright © 2020-2023  润新知