
main文件
compile 'com.hjm:BottomTabBar:1.1.1'
<com.hjm.bottomtabbar.BottomTabBar
android:id="@+id/bottom_tab_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.hjm.bottomtabbar.BottomTabBar>
private BottomTabBar mb;
private TabLayout tabLayout;
private ViewPager viewPager;
private List<String> list;
private FragmentManager manger;
private TextView text_count;
//首页控件
text_count = (TextView) findViewById(R.id.text_count);
manger = getSupportFragmentManager();
//控件底部导航的布局
mb = (BottomTabBar) findViewById(R.id.bottom_tab_bar);
//底部导航的布局
mb.init(manger)
.setImgSize(50, 50)
.setFontSize(8)
.setTabPadding(4, 6, 10)
.setChangeColor(Color.RED, Color.DKGRAY)
.addTabItem("首页", R.drawable.shoye01, Fragment001.class)
.addTabItem("优惠", R.drawable.message01, Fragment002.class)
.addTabItem("购物车", R.drawable.car01, Fragment003.class)
.addTabItem("我的", R.drawable.me01, Fragment004.class)
.isShowDivider(false)
.setOnTabChangeListener(new BottomTabBar.OnTabChangeListener() {
@Override
public void onTabChange(int position, String name) {
}
});
Fragment001的布局
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
app:tabGravity="center"
app:tabIndicatorColor="#ff0000"
app:tabMode="scrollable"
app:tabSelectedTextColor="#ff0000"
app:tabTextColor="#00ff00"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
Fragment001
private ListView listView;
private TabLayout tab_layout;
private ViewPager view_pager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//找控件
View view = inflater.inflate(R.layout.fragment001, container, false);
tab_layout = (TabLayout) view.findViewById(R.id.tab_layout);
view_pager = (ViewPager) view.findViewById(R.id.view_pager);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final List<String> list = new ArrayList<>();
//添加10条数据,作为标题
list.add("全部");
list.add("综艺娱乐");
list.add("财经杂谈");
list.add("文化旅游");
list.add("时尚体育");
list.add("青少科教");
list.add("军事");
list.add("科技");
//设置适配器
view_pager.setOffscreenPageLimit(list.size());
TablayoutAdater tablayoutAdater=new TablayoutAdater(getFragmentManager(),list);
view_pager.setAdapter(tablayoutAdater);
tab_layout.setupWithViewPager(view_pager);
}
}
TablayoutAdater适配器
public class TablayoutAdater extends FragmentPagerAdapter {
FragmentManager manager;
List<String> list;
public TablayoutAdater(FragmentManager manager, List<String> list) {
super(manager);
this.list = list;
}
@Override
public Fragment getItem(int position) {
if(position==0){
return new FragmentOne();
}
return new FragmentTwo();
}
@Override
public int getCount() {
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
fragment003的布局
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_alignParentBottom="true"
android:layout_weight="1"
android:background="#FF8000"
android:orientation="horizontal"
android:padding="3dp">
<RadioButton
android:id="@+id/radio_01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="135dp"
android:background="@drawable/button_select"
android:button="@null"
android:checked="true"
android:gravity="center"
android:padding="10dp"
android:text="我报名的" />
<RadioButton
android:id="@+id/radio_02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_select"
android:button="@null"
android:gravity="center"
android:padding="10dp"
android:text="我发布的" />
</RadioGroup>
<android.support.v4.view.ViewPager
android:id="@+id/manage_viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="11" />
public class Fragment003 extends Fragment {
private RadioButton radio_01;
private RadioButton radio_02;
private RadioGroup radio_group;
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//控件第一次的ragroup和viewpager的切换
View view = inflater.inflate(R.layout.fragment003, container, false);
viewPager = (ViewPager) view.findViewById(R.id.manage_viewpager);
radio_01 = (RadioButton) view.findViewById(R.id.radio_01);
radio_02 = (RadioButton) view.findViewById(R.id.radio_02);
radio_group = (RadioGroup) view.findViewById(R.id.radio_group);
//radio的监听事件
radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.radio_01:
viewPager.setCurrentItem(0, false);
break;
case R.id.radio_02:
viewPager.setCurrentItem(1, false);
break;
default:
break;
}
}
});
//设置适配器
viewPager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Fragmenttablayout001();
break;
case 1:
fragment = new FragmentRight001();
break;
default:
break;
}
return fragment;
}
@Override
public int getCount() {
return 2;
}
});
//viewpager的监听事件
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
radio_group.check(radio_group.getChildAt(position).getId());
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
return view;
}
}
Fragmenttablayout001的布局
<android.support.design.widget.TabLayout
app:tabGravity="fill"
app:tabMode="fixed"
app:paddingEnd="20dp"
app:paddingStart="20dp"
android:id="@+id/tablayout_0001"
app:tabIndicatorColor="#ff0000"
app:tabSelectedTextColor="#ff0000"
app:tabTextColor="#800080"
android:layout_width="match_parent"
android:layout_height="50dp"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager001"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
Fragmenttablayout001
public class Fragmenttablayout001 extends Fragment {
private ViewPager viewPager;
private TabLayout tabLayout;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmenttablatout001, container, false);
tabLayout = (TabLayout) view.findViewById(R.id.tablayout_0001);
viewPager = (ViewPager) view.findViewById(R.id.viewpager001);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
List<String> list=new ArrayList<String>();
list.add("待审核");
list.add("待支付");
list.add("待参加");
list.add("已完成");
//设置适配器
viewPager.setOffscreenPageLimit(list.size());
TablayoutAdater002 tablayoutAdater002=new TablayoutAdater002(getFragmentManager(),list);
viewPager.setAdapter(tablayoutAdater002);
tabLayout.setupWithViewPager(viewPager);
}
}
FragmentRight001
public class FragmentRight001 extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentright, container, false);
return view;
}
}
TablayoutAdater002
public class TablayoutAdater002 extends FragmentPagerAdapter {
List<String> list;
public TablayoutAdater002(FragmentManager fragmentManager, List<String> list) {
super(fragmentManager);
this.list = list;
}
@Override
public Fragment getItem(int position) {
if(position==0){
return new FragmentTwo();
}else if(position==1){
return new Fragmenttablayout003();
}
return new Fragmenttablayout002();
}
@Override
public int getCount() {
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
}