我的标签布局有三个图标A
B
C
,我希望用户点击标签A,当用户点击标签B
时,它会改变颜色标签A
将更改为原始文件。
我的问题是我不能让标签图标变为原始图标,当它变为黄色时,它将始终为黄色,我该如何解决这个问题?提前谢谢。
public class HomeTabs extends Fragment {
private Context context;
private TabLayout tabLayout;
// Here is my three icons
private int[] imageResId = {R.drawable.contract,
R.drawable.table,
R.drawable.line_graph};
public HomeTabs() {
// Required empty public constructor
}
public static HomeTabs newInstance(){return new HomeTabs();}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home_tabs, container, false);
tabLayout = (TabLayout)view.findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setText(getResources().getString(R.string.tab1)));
tabLayout.addTab(tabLayout.newTab().setText(getResources().getString(R.string.tab2)));
tabLayout.addTab(tabLayout.newTab().setText(getResources().getString(R.string.tab3)));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager)view.findViewById(R.id.viewPagerDataReport);
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(viewPagerAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
// Add my three icons
tabLayout.getTabAt(0).setIcon(imageResId[0]);
tabLayout.getTabAt(1).setIcon(imageResId[1]);
tabLayout.getTabAt(2).setIcon(imageResId[2]);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
// When user click the tab position , change its color
int id =tab.getPosition();
if (id==0){
tabLayout.getTabAt(0).getIcon().setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(1).setIcon(imageResId[1]);
tabLayout.getTabAt(2).setIcon(imageResId[2]);
}
if (id==1){
tabLayout.getTabAt(0).setIcon(imageResId[0]);
tabLayout.getTabAt(1).getIcon().setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(2).setIcon(imageResId[2]);
}
if (id==2){
tabLayout.getTabAt(0).setIcon(imageResId[0]);
tabLayout.getTabAt(1).setIcon(imageResId[1]);
tabLayout.getTabAt(2).getIcon().setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN);
}
//tab.getIcon().setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
//tab.getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
return view;
}
}
答案 0 :(得分:1)
bcz单击其他选项卡时不会改变颜色。您只是将颜色设置为特定标签位置。所以休息会变黄。
尝试这样。
lapply()
或者你可以这样做。
result <- lapply(waluty, function(x) grep("DEM", x))
tabOne是一个textview。 tabLayout.getTabAt(0).setCustomView(塔伯恩);