Android : TabLayout实现代替RedioG

先上图展示效果
在这里插入图片描述

在这里插入图片描述

下面就是代码了
Activity_main.xml里面的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.design.widget.TabLayout
        android:id="@+id/Tab_Layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable"></android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/View_Page"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/Tab_Layout"></android.support.v4.view.ViewPager>

</RelativeLayout>

//fragment的xml和java代码就不写了 都是自动生成的
下面是适配器的adapter

package com.example.tablayout.adapter;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

public class MyAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> mdatas;
    private ArrayList<String> mlist;

    public MyAdapter(FragmentManager fm, ArrayList<Fragment> datas, ArrayList<String> list) {
        super(fm);
        this.mdatas = datas;
        this.mlist = list;
    }

    @Override
    public Fragment getItem(int i) {
        return mdatas.get(i);
    }

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

    //需要重写的方法   重写标题
    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return mlist.get(position);
    }
}

activity里面的代码

package com.example.tablayout;

import android.os.Bundle;
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 com.example.tablayout.adapter.MyAdapter;
import com.example.tablayout.fragment.AFragment;
import com.example.tablayout.fragment.BFragment;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private TabLayout Tab_Layout;
    private ViewPager View_Page;
    private ArrayList<Fragment> mdatas = new ArrayList<>();
    private ArrayList<String> mlists = new ArrayList<>();

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

    }
    //初始化数据
    private void initData() {
        mdatas.add(new AFragment());
        mdatas.add(new BFragment());
        mdatas.add(new AFragment());
        mdatas.add(new BFragment());
        mdatas.add(new AFragment());
        mdatas.add(new BFragment());
        mdatas.add(new AFragment());
        mdatas.add(new BFragment());
        mlists.add("新闻");
        mlists.add("LOL");
        mlists.add("新闻");
        mlists.add("LOL");
        mlists.add("新闻");
        mlists.add("LOL");
        mlists.add("新闻");
        mlists.add("LOL");
    }

    private void initView() {
        Tab_Layout = (TabLayout) findViewById(R.id.Tab_Layout);
        View_Page = (ViewPager) findViewById(R.id.View_Page);
        View_Page.setAdapter(new MyAdapter(getSupportFragmentManager(),mdatas,mlists));
        Tab_Layout.setupWithViewPager(View_Page);
    }
}

以上.

猜你喜欢

转载自blog.csdn.net/weixin_43603192/article/details/83897257
今日推荐