내 앱의 탭에 문제가 있습니다. 탭을 선택하면 아이콘과 텍스트 색상을 변경하려고합니다. 다른 탭으로 변경하면 아이콘과 텍스트 색상을 중간 색상으로 변경해야합니다.선택한 탭의 텍스트 색상 변경
나는이 작업을 시도했지만 아이콘이 변경되는 동안 텍스트 색상은 그대로 유지됩니다.
final TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
tabs.addTab(tabs.newTab().setIcon(R.mipmap.destacados_act).setText("Destacados"));
tabs.setSelectedTabIndicatorColor(Color.rgb(255,170,0));
tabs.addTab(tabs.newTab().setIcon(R.mipmap.secciones).setText("Secciones"));
tabs.addTab(tabs.newTab().setIcon(R.mipmap.descargas).setText("Descargas"));
final ViewPager view_pager = (ViewPager) findViewById(R.id.pager);
final ViewPagerAdapterPrincipal adapter = new ViewPagerAdapterPrincipal(getSupportFragmentManager(), tabs.getTabCount());
view_pager.setAdapter(adapter);
view_pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
view_pager.setCurrentItem(tab.getPosition());
switch (tab.getPosition()) {
case 0:
tab.setIcon(R.mipmap.destacados_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(255,170,0));
break;
case 1:
tab.setIcon(R.mipmap.secciones_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(0,255,255));
break;
case 2:
tab.setIcon(R.mipmap.descargas_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(170,255,0));
break;
}
}
public void onTabUnselected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
tab.setIcon(R.mipmap.destacados);
break;
case 1:
tab.setIcon(R.mipmap.secciones);
break;
case 2:
tab.setIcon(R.mipmap.descargas);
break;
}
}
public void onTabReselected(TabLayout.Tab tab) {
}
});
다음은 어댑터
public class ViewPagerAdapterPrincipal extends FragmentStatePagerAdapter {
int numOfTabs;
public ViewPagerAdapterPrincipal(FragmentManager fm, int numOfTabs) {
super(fm);
this.numOfTabs = numOfTabs;
}
public Fragment getItem(int position) {
switch(position){
case 0 :
DestacadosPrincipal tab1 = new DestacadosPrincipal();
return tab1;
case 1 :
Secciones tab2 = new Secciones();
return tab2;
case 2 :
Descargas tab3 = new Descargas();
return tab3;
default:
return null;
}
}
public int getCount() {
return numOfTabs;
}
}
내가 텍스트 색이 미세하지만 분명히 아이콘이 변경되지 않습니다
tab.setIcon();
를 삭제하면 문제가 OnTabUnselected
에 온다 내 코드입니다.
코드에서 탭을 만들 때 텍스트를 만들기 때문에 프로그래밍 방식으로 스타일을 추가 할 수 있습니까? – thproflord
TextView에서 스타일을 설정하는 방법을 보여주기 위해 내 대답을 편집했습니다. – CSmith