一.思路: bottomactivity里面放一个viewpage并3个Fragment并绑定
在第一个Fragment中放入tabLayouot和viewpager(绑定3个Fragment)并将其绑定
1.-bottomactivity-----代码
package com.example.zhoukao3_lx.ui.activity;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
import com.example.zhoukao3_lx.R;
import com.example.zhoukao3_lx.Utils.BaseActivity;
import com.example.zhoukao3_lx.ui.fragment.FragmentOne;
import com.example.zhoukao3_lx.ui.fragment.FragmentThree;
import com.example.zhoukao3_lx.ui.fragment.FragmentTwo;
public class Main1Activity extends BaseActivity {
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
viewpager.setCurrentItem(0);
return true;
case R.id.navigation_dashboard:
viewpager.setCurrentItem(1);
return true;
case R.id.navigation_notifications:
viewpager.setCurrentItem(2);
return true;
}
return false;
}
};
private BottomNavigationView navigation;
private ViewPager viewpager;
@Override
protected int getContentViewid() {
return R.layout.activity_main1;
}
@Override
protected void infodata() {
}
@Override
protected void infoview() {
navigation = findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
viewpager = findViewById(R.id.viewpager1);
viewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new FragmentThree();
}
return null;
}
@Override
public int getCount() {
return 3;
}
});
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
switch (i){
case 0:
navigation.setSelectedItemId(R.id.navigation_home);
break;
case 1:
navigation.setSelectedItemId(R.id.navigation_dashboard);
break;
case 2:
navigation.setSelectedItemId(R.id.navigation_notifications);
break;
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
}
2.第一个Fragment代码
package com.example.zhoukao3_lx.ui.fragment;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import com.example.zhoukao3_lx.R;
import com.example.zhoukao3_lx.Utils.BaseFragment;
public class FragmentOne extends BaseFragment {
private ViewPager viewpager;
private TabLayout tab;
@Override
protected int getFragmentview() {
return R.layout.fragmentone;
}
@Override
protected void infoview(View view) {
viewpager = view.findViewById(R.id.viewpager2);
tab = view.findViewById(R.id.tab);
viewpager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
String[] names = new String[]{"正在热映","即将上映"};
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FragmentHome();
case 1:
return new FragmentMy();
}
return null;
}
@Override
public int getCount() {
return names.length;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return names[position];
}
});
tab.setupWithViewPager(viewpager);
}
@Override
protected void infodata() {
}
}