TabLayout与ViewPager

本文详细介绍了一种在Android应用中结合使用TabLayout与ViewPager组件的方法。通过自定义适配器,实现了多个Fragment的切换与展示,每个Tab对应一个Fragment,提供加载ListView和轮播图的功能。代码示例清晰展示了如何初始化数据、设置视图以及实现Fragment的动态加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.week3;

import android.os.Bundle;

import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import com.example.week3.Fragment.OneFragment;
import com.example.week3.Fragment.TwoFragment;
import com.example.week3.adapter.MyAdapter;

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

import q.rorbin.verticaltablayout.VerticalTabLayout;

public class MainActivity extends AppCompatActivity {

private VerticalTabLayout tab_layout;
private ViewPager viewpager;
private List<String> mTitle=new ArrayList<>();
private List<Fragment> mFragment=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化数据
    initData();
    initView();
}
//初始化数据
private void initData() {
    mTitle.add("加载LISTView");
    mTitle.add("加载轮播图");
 mFragment.add(new OneFragment());
 mFragment.add(new TwoFragment());
}
//初始化视图
private void initView() {
    tab_layout = findViewById(R.id.tab_layout);
    viewpager = findViewById(R.id.viewpager);
    viewpager.setAdapter(new MyAdapter(getSupportFragmentManager(),mTitle,mFragment));
    tab_layout.setupWithViewPager(viewpager);
}

}
TabLayout与ViewPager的适配器
package com.example.week3.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;
import java.util.List;

public class MyAdapter extends FragmentPagerAdapter {
private List mTitle;
private List mFragment;

public MyAdapter(FragmentManager fm, List<String> mTitle, List<Fragment> mFragment) {
    super(fm);
    this.mTitle = mTitle;
    this.mFragment = mFragment;
}

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

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

@Nullable
@Override
public CharSequence getPageTitle(int position) {
    return mTitle.get(position);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值