使用Actionbarsherlock在第二个栏中显示选项卡

时间:2013-02-11 01:41:12

标签: android tabs split actionbarsherlock

我在使用ActionBarSherlock显示标签时遇到问题。我已经在我自己的应用程序中复制了actionbarsherlock演示的示例代码,如果我在像Nexus 7这样的7''显示中运行应用程序,则标签会出现在与标题相同的栏中。但是,如果我在同一设备中运行ABS样本标签出现在不同的栏中。

我的申请有什么问题?

这是我的代码:

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.widget.TextView;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.internal.ResourcesCompat;
import com.mbal.misseries.R;

public class ProvaDeFragments extends SherlockActivity implements ActionBar.TabListener {
    private TextView mSelected;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.Theme_Sherlock_Light); //Used for theme switching in samples
        super.onCreate(savedInstanceState);

        setContentView(R.layout.tab_navigation);
        mSelected = (TextView)findViewById(R.id.text);


        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 1; i <= 3; i++) {
            ActionBar.Tab tab = getSupportActionBar().newTab();
            tab.setText("Tab " + i);
            tab.setTabListener(this);
            getSupportActionBar().addTab(tab);
        }
    }

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

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction transaction) {
        mSelected.setText("Selected: " + tab.getText());
    }

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

它显示如下:

From my application

但如果我运行样本ABS代码如下所示:

ABS Sample Demo

提前致谢!

1 个答案:

答案 0 :(得分:0)

除了在有足够空间的设备上测试外,你没有做错任何事。 ; - )

根据Google开发者网站中的ActionBar文档:

  

如果要在活动中提供导航标签,请使用   动作栏的标签是一个很好的选择(而不是使用TabWidget),   因为系统会根据不同的屏幕调整操作栏选项卡   尺寸 - 在屏幕显示时将它们放置在主操作栏中   足够宽,或在一个单独的栏(称为“堆叠行动   栏“)当屏幕太窄时,如图9和图10所示。

如果你制作更长的标签,向条形图添加更多动作,和/或以更薄的视图(例如手机上的肖像)测试它,它应该自动将其分解为第二个条形图。

注意他们的例子中的视图(下面复制)第二个堆叠它们的视图比第一个视图要窄得多。

图9

figure 9

图10

figure 10