2

我在使用 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) {
    }
}

它是这样显示的:

从我的申请

但是,如果我运行示例 ABS 代码,则如下所示:

ABS 示例演示

提前致谢!

4

1 回答 1

0

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

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

当您想在 Activity 中提供导航选项卡时,使用操作栏的选项卡是一个不错的选择(而不是使用 TabWidget),因为系统会针对不同的屏幕尺寸调整操作栏选项卡——在屏幕显示时将它们放在主操作栏中足够宽,或者在屏幕太窄时位于单独的栏(称为“堆叠操作栏”)中,如图 9 和 10 所示。

如果您制作更长的标签,向栏添加更多操作,和/或在更薄的视图中测试它(例如,手机上的纵向),它应该会自动将其拆分为第二个栏。

请注意他们的示例中的视图(复制如下),堆叠它们的第二个视图比第一个窄得多。

图 9

图 9

图 10

图 10

于 2013-06-21T22:08:24.450 回答