Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar以编程方式自定义选项卡_Android_Background_Tabs_Android Actionbar - Fatal编程技术网

Android ActionBar以编程方式自定义选项卡

Android ActionBar以编程方式自定义选项卡,android,background,tabs,android-actionbar,Android,Background,Tabs,Android Actionbar,我试图以编程方式在ActionBar中创建自定义选项卡。我有两个错误: 1-我想根据是否选中选项卡来更改文本颜色,但我没有得到更改。tab1始终具有选定选项卡的颜色 2-我的选项卡的备份未完成。 我需要帮助。多谢各位 JAVA private void cargarTabs() { TabsPagerAdapter mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapt

我试图以编程方式在ActionBar中创建自定义选项卡。我有两个错误:

1-我想根据是否选中选项卡来更改文本颜色,但我没有得到更改。tab1始终具有选定选项卡的颜色

2-我的选项卡的备份未完成。

我需要帮助。多谢各位

JAVA

private void cargarTabs() {

    TabsPagerAdapter mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    viewPager.setAdapter(mAdapter);
    viewPager.setCurrentItem(0);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

    cargarTextoTabs();

    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

private void cargarTextoTabs() {

    nombresTabs = new String[2];

    switch (perfilObj.getIdioma()) {
    case 1:
        nombresTabs[0] = Espanol.MAIN_LISTADO;
        nombresTabs[1] = Espanol.MAIN_MAPA;

        break;

    case 2:
        nombresTabs[0] = Ingles.MAIN_LISTADO;
        nombresTabs[1] = Ingles.MAIN_MAPA;

        break;
    }

    for (int i = 0; i < nombresTabs.length; i++) {

        Tab tab = actionBar.newTab();

        tab.setTabListener(this);

        switch (i) {
        case 0:
            tab.setCustomView(cargarTabSel(i));
            break;

        default:
            tab.setCustomView(cargarTabUnSel(i));
            break;
        }

        actionBar.addTab(tab, i);
    }   
}

private View cargarTabSel(int i) {

    RelativeLayout r = (RelativeLayout) getLayoutInflater().inflate(
            R.layout.tab, null);
    TextView tv = (TextView) r.findViewById(R.id.tab_texto);
    RelativeLayout rl = (RelativeLayout) r.findViewById(R.id.tab_fondo);

    int fondo = 0, color = 0;

    switch (perfilObj.getColor()) {
    case 1:
        color = R.color.blanco;
        fondo = R.drawable.tab_indicator_negro;
        break;

    case 2:
        color = R.color.grisOscuro;
        fondo = R.drawable.tab_indicator_blanco;
        break;

    default:
        color = R.color.blanco;
        fondo = R.drawable.tab_indicator_negro;
    }

    tv.setText(nombresTabs[i]);
    tv.setTextColor(getResources().getColor(color));
    tv.setTextSize(14);
    tv.setTypeface(Modulo.fontUbuntuBold(this));
    tv.setEllipsize(TruncateAt.END);
    tv.setSingleLine();
    tv.setPadding(5, 0, 5, 0);

    rl.setBackgroundResource(fondo);

    return r;
}

private View cargarTabUnSel(int i) {

    RelativeLayout r = (RelativeLayout) getLayoutInflater().inflate(
            R.layout.tab, null);
    TextView tv = (TextView) r.findViewById(R.id.tab_texto);
    RelativeLayout rl = (RelativeLayout) r.findViewById(R.id.tab_fondo);

    int fondo = 0;

    switch (perfilObj.getColor()) {
    case 1:
        fondo = R.drawable.tab_indicator_negro;
        break;

    case 2:
        fondo = R.drawable.tab_indicator_blanco;
        break;

    default:
        fondo = R.drawable.tab_indicator_negro;
    }

    tv.setText(nombresTabs[i]);
    tv.setTextColor(getResources().getColor(R.color.gris));
    tv.setTextSize(14);
    tv.setTypeface(Modulo.fontUbuntu(this));
    tv.setEllipsize(TruncateAt.END);
    tv.setSingleLine();
    tv.setPadding(5, 0, 5, 0);

    rl.setBackgroundResource(fondo);

    return r;
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {

    int pos = tab.getPosition();

    viewPager.setCurrentItem(pos);

    tab.setCustomView(cargarTabSel(pos));
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {

    tab.setCustomView(cargarTabUnSel(tab.getPosition()));
}
private void cargarTabs(){
TabsPagerAdapter mAdapter=新的TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
viewPager.setCurrentItem(0);
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u选项卡);
cargarTextoTabs();
viewPager.setOnPageChangeListener(新的viewPager.OnPageChangeListener(){
@凌驾
已选择页面上的公共无效(内部位置){
actionBar.setSelectedNavigationItem(位置);
}
@凌驾
已滚动页面上的公共void(int arg0、float arg1、int arg2){
}
@凌驾
公共无效onPageScrollStateChanged(int arg0){
}
});
}
私人住宅{
nombresTabs=新字符串[2];
开关(perfilObj.getIdioma()){
案例1:
nombresTabs[0]=Espanol.MAIN_LISTADO;
nombresTabs[1]=Espanol.MAIN_MAPA;
打破
案例2:
nombresTabs[0]=Ingles.MAIN_LISTADO;
nombresTabs[1]=Ingles.MAIN_MAPA;
打破
}
对于(int i=0;i
tab.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab_fondo"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:id="@+id/tab_texto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"/>

</RelativeLayout>

我不确定它是否能完全满足您的需求,但请看一看:请参考此