您需要先創建選擇器xml文件,然後將它們放在您的可繪製文件夾中,這些選擇器文件需要引用選定狀態和非選定狀態的有效可繪製。
然後,只需在活動的onCreate()
中設置標籤圖標即可。
這是你的活動應該是什麼樣子,以表現出三個標籤,每個標籤只顯示一個圖標:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager()));
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
TabLayout.Tab tabCall = tabLayout.getTabAt(0);
tabCall.setIcon(R.drawable.selector_call);
TabLayout.Tab tabHeart = tabLayout.getTabAt(1);
tabHeart.setIcon(R.drawable.selector_heart);
TabLayout.Tab tabContacts = tabLayout.getTabAt(2);
tabContacts.setIcon(R.drawable.selector_contacts);
}
class TabPagerAdapter extends FragmentPagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 3;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new CallFragment();
case 1:
return new HeartFragment();
case 2:
return new ContactsFragment();
}
return null;
}
}
}
每個標籤都需要自己選擇的XML文件,這裏是什麼樣的一個例子第三個標籤的選擇器應該如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/contacts_selected" />
<item
android:state_selected="false"
android:drawable="@drawable/contacts_unselected" />
</selector>
您是否按照他們的建議聲明TabLayout?即'TabLayout tabLayout =(TabLayout)findViewById(R.id.tabLayout);' –
@DanielNugent好的,我做到了,謝謝。如何修復'ITEM_CALL'? –
這是一個你需要聲明的常量。另外,你應該在'onCreate()'中調用'setIcon()',而不是'getPageTitle()' –