¿Cómo cambiar el título de la barra de herramientas mediante el diseño?
Estoy usando la ayuda de TabLayout de la biblioteca del diseño, estoy intentando cambiar el título de la barra de herramientas cuando la lengüeta se presiona o ViewPager se desliza. Pero no puedo conseguir ningún éxito hasta ahora. Este es el siguiente código: –
public class ActivityHomePage extends AppCompatActivity { private TabLayout tabLayout; private ViewPager viewPager; Toolbar toolbar; DesignDemoPagerAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_homepage); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); // viewPager.getAdapter().getPageTitle(); tabLayout = (TabLayout) findViewById(R.id.tablayout); tabLayout.setupWithViewPager(viewPager); setupTabIcons(); } private int[] tabIcons = { R.drawable.ic_action_star, R.drawable.ic_action_heart, R.drawable.ic_action_square }; private void setupViewPager(ViewPager viewPager) { adapter = new DesignDemoPagerAdapter(getSupportFragmentManager()); adapter.addFrag(new FragmentStar(), "star"); adapter.addFrag(new FragmentHeart(), "heart"); adapter.addFrag(new FragmentSquare(), "square"); viewPager.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); switch (id) { case android.R.id.home: mDrawerLayout.openDrawer(GravityCompat.START); return true; case R.id.action_settings: return true; } return super.onOptionsItemSelected(item); } class DesignDemoPagerAdapter extends FragmentStatePagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public DesignDemoPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFrag(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return null; } } }
- Android ViewPager y TabLayout no funcionan rápido
- ViewPager con la barra de herramientas y TabLayout tiene altura incorrecta
- Cambiar el color de fondo de una pestaña en TabLayout (biblioteca de soporte de diseño de Android) no ocupa todo el espacio de tabulación
- Se ha producido un error al inflar la clase android.support.design.widget.TabLayout
- Inflar la excepción en el fragmento de mapa de Google en ViewPager con TabLayout
- TabLayout dentro de la barra de herramientas
- Programe ocultar / mostrar el diseño de soporte de Android Android TabLayout dentro de AppBarLayout
- Android CoordinatorLayout - Inconsistencias entre versiones de Android
- Cambiar el icono y el color del título cuando se selecciona en la biblioteca de diseño de Android TabLayout
- Android TabLayout no muestra contenido tan pronto como el fragmento se cambia
- Cambiar el relleno de TextView en TabLayout
- Personalización del indicador TabLayout
- ¿Cómo obtengo la vista de una pestaña en un TabLayout?
Finalmente soy capaz de hacerlo, podría ser útil para alguien, así que aquí está la respuesta de lo anterior: –
/** Tab & PageViewer Controller**/ tabLayout = (TabLayout) findViewById(R.id.tablayout); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_action_star)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_action_heart)); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_action_square)); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); // setupTabIcons(); viewPager = (ViewPager) findViewById(R.id.viewpager); pAdapter = new PagerAdapter (getSupportFragmentManager(), tabLayout.getTabCount()); viewPager.setAdapter(pAdapter); toolbar.setTitle("Same Page"); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { switch(tab.getPosition()) { case 0: viewPager.setCurrentItem(0); toolbar.setTitle("Fragment Star"); break; case 1: viewPager.setCurrentItem(1); toolbar.setTitle("Fragment Heart"); break; case 2: viewPager.setCurrentItem(2); toolbar.setTitle("Fragment Squae"); break; default: viewPager.setCurrentItem(tab.getPosition()); toolbar.setTitle("Fragment Star"); break; } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } /** **/ public class PagerAdapter extends FragmentStatePagerAdapter { int mNumOfTabs; public PagerAdapter(FragmentManager fm, int NumOfTabs) { super(fm); this.mNumOfTabs = NumOfTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: FragmentStar tab0 = new FragmentStar(); return tab0; case 1: FragmentHeart tab1 = new FragmentHeart(); return tab1; case 2: FragmentSquare tab2 = new FragmentSquare(); return tab2; default: return null; } } @Override public int getCount() { return mNumOfTabs; } }
- Cómo mostrar la animación de ondulación en google map en Android?
- La imagen no aparece en HTC One M8