TabLayout学习

<?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);
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值