Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Establecer la posición del indicador de tabulación mediante programación en la biblioteca de soporte TabLayout

En mi aplicación estoy usando TabLayout de la biblioteca de la ayuda con el pager de la visión. Tengo 3 fragmentos en él. Supongo que estoy en fragA que tiene un botón que en chascado me lleve a fragB.I soy con éxito va a fragB pero el único problema es que el El indicador de tabulación permanece en fragA.

Código

private void setupTablayout() { tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); tabLayout.setupWithViewPager(viewPager); viewPager.setCurrentItem(1, true); tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); tabLayout.getTabAt(1).setIcon(R.drawable.status_1).setText(""); tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); tvHeader.setText("STATUS"); tabLayout.setOnTabSelectedListener(this); //tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager)); } @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive_1).setText(""); tvHeader.setText("ARCHIVES"); tvDate.setVisibility(View.GONE); ivRefresh.setVisibility(View.VISIBLE); break; case 1: tab.setIcon(R.drawable.status_1).setText(""); tvHeader.setText("STATUS"); tvDate.setVisibility(View.VISIBLE); ivRefresh.setVisibility(View.VISIBLE); break; case 2: tab.setIcon(R.drawable.settings_1).setText(""); tvHeader.setText("SETTINGS"); tvDate.setVisibility(View.GONE); ivRefresh.setVisibility(View.GONE); break; } } @Override public void onTabUnselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive).setText(""); break; case 1: tab.setIcon(R.drawable.status).setText(""); break; case 2: tab.setIcon(R.drawable.settings).setText(""); break; } } @Override public void onTabReselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive).setText(""); break; case 1: tab.setIcon(R.drawable.status).setText(""); break; case 2: tab.setIcon(R.drawable.settings).setText(""); break; } } class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { Fragment fragment = null; switch (position) { case 0: // tabLayout.getTabAt(0).setIcon(R.drawable.archive_1).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); fragment = new ArchivesFrag(); break; case 1: // tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status_1).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); fragment = StatusFrag.newInstance(listPosition); break; case 2: // tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings_1).setText(""); fragment = new SettingFrag(); break; } return fragment; } @Override public int getCount() { return 3; } } 

FragA

 { ((Home) getActivity()).getArchiveList(); } 

2 Solutions collect form web for “Establecer la posición del indicador de tabulación mediante programación en la biblioteca de soporte TabLayout”

En lugar de

 viewPager.setCurrentItem(tab.getPosition()); 

Puedes usar,

 tab.select(); 

Ha creado el archivo .Xml para cada ficha.

Actividad principal

 public class MainActivity extends TabActivity { TabHost tabHost; TabSpec tab1,tab2,tab3,tab4; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // create the TabHost that will contain the Tabs tabHost = (TabHost)findViewById(android.R.id.tabhost); // tabHost.setOnTabChangedListener(this); TabSpec tab1 = tabHost.newTabSpec("First Tab"); TabSpec tab2 = tabHost.newTabSpec("Second Tab"); TabSpec tab3 = tabHost.newTabSpec("Third tab"); TabSpec tab4 = tabHost.newTabSpec("Fourth Tab"); // Set the Tab name and Activity // that will be opened when particular Tab will be selected tab1.setIndicator("",getResources().getDrawable(R.drawable.video)); tab1.setContent(new Intent(this,VideoActivity.class)); //tab1.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab2.setIndicator("",getResources().getDrawable(R.drawable.images)); tab2.setContent(new Intent(this,ImagesActivity.class)); //tab2.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab3.setIndicator("",getResources().getDrawable(R.drawable.audio)); tab3.setContent(new Intent(this,AudioActivity.class)); //tab3.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab4.setIndicator("",getResources().getDrawable(R.drawable.favourites)); tab4.setContent(new Intent(this,Favourites.class)); //tab4.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); /** Add the tabs to the TabHost to display. */ tabHost.addTab(tab1); tabHost.addTab(tab2); tabHost.addTab(tab3); tabHost.addTab(tab4); } 

Haga Xml por cada ficha / clase y declare las clases en Manifest

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.