[英]Show tabs in a second bar using Actionbarsherlock
我在使用ActionBarSherlock顯示選項卡時遇到問題。 如果我在Nexus 7之類的7英寸顯示屏上運行該應用程序,則我以自己的應用程序復制了actionbarsherlock演示的示例代碼,選項卡顯示在與標題相同的欄上。 但是,如果我在同一設備中運行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代碼,如下所示:
提前致謝!
除了在具有足夠空間的設備上對其進行測試以外,您沒有做錯任何事情。 ;-)
根據Google開發者網站中的ActionBar文檔:
當您想在活動中提供導航選項卡時,使用操作欄的選項卡是一個不錯的選擇(而不是使用TabWidget),因為系統會針對不同的屏幕尺寸調整操作欄選項卡-當屏幕顯示在屏幕上時,將其放置在主操作欄中屏幕足夠窄,或者當屏幕太窄時放在單獨的條(稱為“堆疊操作條”)中,如圖9和10所示。
如果您制作了更長的標簽,將更多的操作添加到工具欄中,和/或在較細的視圖中進行了測試(例如,在手機上的肖像),則應將其自動拆分到第二個工具欄中。
請注意,在他們的示例(下面復制)中,將它們堆疊的第二個視圖比第一個狹窄得多。
圖9
圖10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.