Android-突出显示带有滑动布局的图标
目前,我正在尝试使用图标作为tabtitle实现SlidingTab,然后在选择相应的选项卡时,图标应该高亮显示 在下面的教程中,我使用了Google的SlidingTableout,并制作了图标而不是tabtitle。 我知道在哪里可以通过实现OnPageChangeListener获得当前选项卡位置,但我不知道应该在public void onPageSelected(int position){ 这是我的当前状态和代码,请告知,如果您能尽可能详细地阅读说明,我们将不胜感激,因为我是一名非常初学者,是一名android开发人员 谢谢 MainActivity.javaAndroid-突出显示带有滑动布局的图标,android,icons,highlight,Android,Icons,Highlight,目前,我正在尝试使用图标作为tabtitle实现SlidingTab,然后在选择相应的选项卡时,图标应该高亮显示 在下面的教程中,我使用了Google的SlidingTableout,并制作了图标而不是tabtitle。 我知道在哪里可以通过实现OnPageChangeListener获得当前选项卡位置,但我不知道应该在public void onPageSelected(int position){ 这是我的当前状态和代码,请告知,如果您能尽可能详细地阅读说明,我们将不胜感激,因为我是一名非
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {
// Declaring Your View and Variables
private Toolbar toolbar;
private ViewPager mPager;
private SlidingTabLayout mTabs;
private ViewPagerAdapter mAdapter;
private static Context context;
int brightIcons[]={R.drawable.abc_btn_switch_to_on_mtrl_00012,R.drawable.abc_btn_switch_to_on_mtrl_00012,R.drawable.abc_btn_switch_to_on_mtrl_00012,R.drawable.abc_btn_switch_to_on_mtrl_00012,R.drawable.abc_btn_switch_to_on_mtrl_00012,};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPager = (ViewPager) findViewById(R.id.pager);
mAdapter = new ViewPagerAdapter(getSupportFragmentManager(), getApplicationContext());
mPager.setAdapter(mAdapter);
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
mTabs.setOnPageChangeListener(this);
mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText);
mTabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
@Override
public int getIndicatorColor(int position) {
return getResources().getColor(R.color.tabsScrollColor);
}
});
mTabs.setViewPager(mPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(this, Integer.toString(position), Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
ViewPagerAdapter.java
public class ViewPagerAdapter extends FragmentPagerAdapter {
int NumbOfTabs = 4; // Store the number of tabs, this will also be passed when the ViewPagerAdapter is created
String[]tabs;
CharSequence Titles[]={"P","M","C","S","I"};
int icons[]={R.drawable.profile,R.drawable.match,R.drawable.chat,R.drawable.ic_search,R.drawable.info};
Context context;
public ViewPagerAdapter(FragmentManager fm, Context mContext) {
super(fm);
this.context= mContext;
tabs = context.getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
Profile Profile = new Profile();
return Profile;
case 1:
MatchPage MatchPage = new MatchPage();
return MatchPage;
case 2:
Chat Chat = new Chat();
return Chat;
case 3:
SearchPreference SearchPreference = new SearchPreference();
return SearchPreference;
case 4:
Info Info = new Info();
return Info;
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
Drawable drawable=context.getResources().getDrawable(icons[position]);
drawable.setBounds(0, 0,100,100);
ImageSpan imageSpan = new ImageSpan(drawable);
SpannableString spannableString =new SpannableString(" ");
spannableString.setSpan(imageSpan,0,spannableString.length(),spannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableString;
//return Titles[position];
}
@Override
public int getCount() {
return NumbOfTabs;
}
}