TabLayout学习
2016-07-10 09:48
225 查看
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.user.android2lesson_01_tablayout.MainActivity"> <!-- 步骤1 :将TabLayout和ViewPager添加到布局文件里 注意::这里需要将标签的包进行引入 --> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> package com.user.android2lesson_01_tablayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.List; /** * Created by user on 2016/7/4. */ public class MyAdapter extends FragmentPagerAdapter{ // 创建第二步: // 创建一个适配器,进行数据和界面之间的适配 // 适配器里有什么 // 1.显示的fragment列表 private List<Fragment> list; // 2.显示的标签的标题列表 private List<String> listTitle; // 重写构造函数,在构造函数里进行成员变量(fragment列表和标题列表的赋值) public MyAdapter(FragmentManager fm, List<Fragment> list ,List<String> listTitle){ super(fm); this.list = list; this.listTitle = listTitle; } @Override public Fragment getItem(int position) { // 返回位置对应的Fragment return list.get(position); } @Override public int getCount() { // 返回所有fragment的个数 return list.size(); } // 返回标题对应的tab上的名字 @Override public CharSequence getPageTitle(int position) { return listTitle.get(position); } } package com.user.android2lesson_01_tablayout; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { // 创建第三步: // 将数据和界面进行关联 // 声明属性 private TabLayout tabLayout; private ViewPager viewPager; // 声明要显示的界面和标题数组 private List<Fragment> list; private List<String> listTitle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 在这里进行数据和界面的初始化 // 1.将id和成员变量进行关联 tabLayout = (TabLayout) findViewById(R.id.tablayout); viewPager = (ViewPager) findViewById(R.id.viewpager); // 2.进行数据的初始化和整理 list = new ArrayList<Fragment>(); list.add(new TwoFragmen()); list.add(new ThreeFragmnt()); list.add(new FourFragment()); listTitle = new ArrayList<String>(); listTitle.add("Two"); listTitle.add("Three"); listTitle.add("Four"); // 3. 创建适配器 MyAdapter adapter = new MyAdapter(getSupportFragmentManager(),list,listTitle); // 4.绑定适配器 viewPager.setAdapter(adapter); // 指定当前选中页 viewPager.setCurrentItem(0); // 5.将TabLayout和ViewPager关联 tabLayout.setupWithViewPager(viewPager); } } 还需要3个fragment下面类似的建三个 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.user.android2lesson_01_tablayout.TwoFragmen"> <!-- TODO: Update blank fragment layout --> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="我是第二个fragment" /> </FrameLayout> package com.user.android2lesson_01_tablayout; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * A simple {@link Fragment} subclass. */ public class TwoFragmen extends Fragment { public TwoFragmen() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_two, container, false); } }
相关文章推荐
- Game Prediction
- Alyona and Mex(思路)
- SEO优化
- java命名规范
- (Android日常)从.xml中获取数组中的@drawable
- 可读可执行的C语言简历源文件
- 大话设计模式c++实现---建造者模式
- LeetCode - 337. House Robber III
- 最经典的java 23种设计模式及具体例子
- 第一次运行TestNG测试类时报Cannot find class in classpath
- 【Mybatis框架】输出映射-resultType与resultMap
- CodeForces 342A
- nyoj 243 交换输出
- 值得推荐的C/C++框架和库 (真的很强大) (转)
- iOS 分类之UIView+Frame
- Alyona and Numbers(数学水题)
- JS生成不重复的随机数组的简单实例
- 访问控制权限
- HTTP协议解析
- Codeforces Round #361 (Div. 2) B bfs处理