У меня есть один вопрос, как реализовать значки для tablayout.Как добавить значки Tablayout
У меня есть 3 вкладки и для всех вкладок У меня есть значки, которые выбраны и не выбраны. (Бело-желтый цвет).
Но, не знаю, как их реализовать.
Вот мой класс UserActivity:
public class UserActivity extends AppCompatActivity {
FragmentPagerAdapter adapterViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
adapterViewPager = new UserFragmentPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapterViewPager);
// Give the TabLayout the ViewPager
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setTabTextColors(getResources().getColorStateList(R.color.selector));
}
UserFragmentPageAdapter:
public UserFragmentPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: // Fragment # 0 - This will show FirstFragment
return SmallMoveFragment.newInstance(0, "Small Move");
case 1: // Fragment # 0 - This will show FirstFragment different title
return DeliveryFragment.newInstance(1, "Delivery");
case 2: // Fragment # 1 - This will show SecondFragment
return GarbageFragment.newInstance(2, "Garbage");
default:
return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0: // Fragment # 0 - This will show FirstFragment
return "Small Move";
case 1: // Fragment # 0 - This will show FirstFragment different title
return "Delivery";
case 2: // Fragment # 1 - This will show SecondFragment
return "Garbage ";
default:
return "No name";
}
}
}
и один из 3 вкладок:
public class DeliveryFragment extends Fragment {
// Store instance variables
private String title;
private int page;
// newInstance constructor for creating fragment with arguments
public static DeliveryFragment newInstance(int page, String title) {
DeliveryFragment fragmentFirst = new DeliveryFragment();
Bundle args = new Bundle();
args.putInt("someInt", page);
args.putString("someTitle", title);
fragmentFirst.setArguments(args);
return fragmentFirst;
}
// Store instance variables based on arguments passed
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
page = getArguments().getInt("someInt", 0);
title = getArguments().getString("someTitle");
}
// Inflate the view for the fragment based on layout XML
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_delivery, container, false);
TextView tvLabel = (TextView) view.findViewById(R.id.DeliveryTxt);
tvLabel.setText(page + " -- " + title);
return view;
}
}
Любые идеи о том, где и как ... Я бы сделал это с TabHost, но я бы так хотел.
У меня есть 6 значок 48x48 в drawable/hdpi.
Отсутствует. public void onTabSelected (вкладка TabLayout.Tab) { int pos = tab.getPosition(); переключатель (pos) { кейс 0: tab.setIcon (R.drawable.select_0); break; case 1: tab.setIcon (R.drawable.select_1); break; кейс 2: tab.setIcon (R.drawable.select_2); break; } viewPager.setCurrentItem (pos); } – HaKu