Android中TabLayout+ViewPager+Fragment实现顶部导航栏

一、效果展示

中间部分可滑动切换
Android中TabLayout+ViewPager+Fragment实现顶部导航栏_第1张图片

二、布局



    
        
        
    


    

    


三、创建需要的子fragment

三个feagment布局都一样,都只有一个TextView,下面只给出一个例子




    


package com.example.crab_breeding.first_home.horizontal_menus.water_quality_management;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.crab_breeding.R;

/**
 * 水质各项指标含义说明页面
 */
public class ZhiBiaoFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_zhibiao, container, false);
        return view;
    }
}

四、activity代码中实现功能

package com.example.crab_breeding.first_home.horizontal_menus.water_quality_management;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import com.example.crab_breeding.R;
import com.google.android.material.tabs.TabLayout;

import java.util.ArrayList;
import java.util.List;

public class ManagementActivity extends AppCompatActivity {

    private ImageView back;//返回键
    private ViewPager viewPager;//中间显示内容
    private TabLayout tabLayout;//顶部导航

    private List titles = new ArrayList<>();//放标题
    private List fragments = new ArrayList<>();//放fragment

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_management);
        //影藏自带标题栏
        ActionBar actionBar=getSupportActionBar();
        if (actionBar!=null){
            actionBar.hide();
        }
        //初始化控件
        init();
    }

    private void init(){
        tabLayout=findViewById(R.id.tab_layout);
        viewPager=findViewById(R.id.view_pager);
        back=findViewById(R.id.back);

        fragments.add(new ZhiBiaoFragment());
        fragments.add(new YaoQiuFragment());
        fragments.add(new WenTiFragment());
        titles.add("指标含义");
        titles.add("水质要求");
        titles.add("常见问题");
        //添加tab标签
        for (int i=0;i

五、完成,nice!

你可能感兴趣的:(Android,安卓控件,顶部导航栏,android)