【发布时间】:2014-06-11 16:32:22
【问题描述】:
我已经按照示例进行了
https://github.com/astuetz/PagerSlidingTabStrip
通过提取资源 xml 属性和 Pager 类来实现到我的类中,通过设置 SetIndicator 使选项卡指示器颜色不是淡蓝色而是其他颜色
当涉及到实现时,我似乎无法如愿改变颜色。您能告诉我如何导入库项目或其他方式,以便我可以更改选项卡指示器颜色吗?
以下是我的代码:
import android.os.Bundle;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.FragmentTransaction;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class MainActivity extends FragmentActivity implements TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs ;
private PagerSlidingTabStrip strip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Initilization
strip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLACK));
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
strip.setIndicatorColor(Color.parseColor("#00ffbf"));
// strip.setShouldExpand(true);
//strip.setIndicatorColor(Color.parseColor("#00ffbf"));
// strip.setViewPager(viewPager);
// Adding Tabs
tabs = this.getResources().getStringArray(R.array.options);
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
/**
* on swiping the viewpager make respective tab selected
* */
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
//actionBar.getTabAt(position).getCustomView().setBackgroundColor(Color.parseColor("#00ffbf"));
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// on tab selected
// show respected fragment view
viewPager.setCurrentItem(tab.getPosition());
// tab.set
//
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
protected void onResume() {
super.onResume();
// mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
// mSensorManager.unregisterListener(mSensorListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// The action bar home/up action should open or close the drawer.
// ActionBarDrawerToggle will take care of this.
/* if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}*/
// Handle action buttons
switch(item.getItemId()) {
/* case R.id.action_profile:
startActivity(new Intent(MainActivity.this, Profile.class));
return true;*/
default:
return super.onOptionsItemSelected(item);
}
}
}
【问题讨论】: