package com.andbase.demo.activity; 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.widget.Toolbar; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.andbase.demo.R; import com.andbase.demo.fragment.TestFragment; import com.andbase.demo.global.MyApplication; import com.andbase.library.app.adapter.AbFragmentPagerAdapter; import com.andbase.library.app.base.AbBaseActivity; import com.andbase.library.view.sample.AbViewPager; import java.util.ArrayList; public class BottomBarActivity extends AbBaseActivity { private MyApplication application; private Toolbar toolbar; private TabLayout tabLayout; private AbViewPager viewPager = null; private String[] titleList = null; private int[] icons = new int[]{ R.drawable.menu1_n, R.drawable.menu2_n, R.drawable.menu3_n, R.drawable.menu4_n }; private int[] icons_press = new int[]{ R.drawable.menu1_f, R.drawable.menu2_f, R.drawable.menu3_f, R.drawable.menu4_f }; private TestFragment fragment1; private TestFragment fragment2; private TestFragment fragment3; private TestFragment fragment4; private ArrayList<Fragment> fragmentList = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bottom_tab); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setTitle(R.string.title_bottom_bar); toolbar.setContentInsetsRelative(0, 0); toolbar.setNavigationIcon(R.drawable.ic_back); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); application = (MyApplication) this.getApplication(); initFragment(); } @Override public void onBackPressed() { if(viewPager.getCurrentItem()==0){ finish(); }else{ viewPager.setCurrentItem(0); } } @Override public boolean onCreateOptionsMenu(Menu menu) { //getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); return super.onOptionsItemSelected(item); } public void initFragment(){ tabLayout = (TabLayout)findViewById(R.id.tab_layout); viewPager = (AbViewPager)findViewById(R.id.view_paper); viewPager.setOffscreenPageLimit(4); fragmentList = new ArrayList<Fragment>(); fragment1 = new TestFragment(); fragment2 = new TestFragment(); fragment3 = new TestFragment(); fragment4 = new TestFragment(); fragmentList.add(fragment1); fragmentList.add(fragment2); fragmentList.add(fragment3); fragmentList.add(fragment4); tabLayout.setTabMode(TabLayout.MODE_FIXED); titleList = new String[]{ "页面1","页面2","页面3","页面4" }; AbFragmentPagerAdapter adapter = new AbFragmentPagerAdapter(getSupportFragmentManager(),titleList,fragmentList); viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager); //禁止滑动 //viewPager.setPagingEnabled(false); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { toolbar.setTitle(titleList[position]); for(int i=0;i<titleList.length;i++){ TabLayout.Tab tab = tabLayout.getTabAt(i); View view = tab.getCustomView(); ImageView img = (ImageView)view.findViewById(R.id.tab_icon); if(position==i){ img.setImageResource(icons_press[i]); }else{ img.setImageResource(icons[i]); } } } @Override public void onPageScrollStateChanged(int state) { } }); //为TabLayout添加tab名称 for(int i=0;i<titleList.length;i++){ TabLayout.Tab tab = tabLayout.getTabAt(i); tab.setCustomView(getTabView(i)); } viewPager.setCurrentItem(0); } /** * 添加getTabView的方法,来进行自定义Tab的布局View * @param position * @return */ public View getTabView(int position){ LayoutInflater mInflater = LayoutInflater.from(this); View view = null; view = mInflater.inflate(R.layout.item_bottom_tab,null); TextView tv = (TextView)view.findViewById(R.id.textView); tv.setText(titleList[position]); ImageView img = (ImageView)view.findViewById(R.id.tab_icon); if(position == 0){ img.setImageResource(icons_press[position]); }else{ img.setImageResource(icons[position]); } return view; } public void selectPager(int index) { viewPager.setCurrentItem(index); } }