我有一個應用程序使用ActionBarSherlock爲選項卡導航提供ViewPager控件,以及標準的ActionBar。一切工作正常,除了當我使用自定義ActionBar視圖時,操作欄將其位置移動到Tab控件下方。使用具有自定義ActionBar視圖的ABS ViewPager
當使用一個標準動作條(即沒有自定義視圖),一切都按預期工作:
然而,當我切換動作條使用自定義視圖(沒有其他的代碼更改無論如何),操作欄切換到標籤控件下面:
是否有任何特別的原因 這個?有什麼我可以做的使用自定義操作欄視圖,但仍然與選項卡上方的操作欄一起佈置?在這個例子中使用的所有XML佈局都是非常簡單的,正如下面的代碼所指出的那樣。
我使用ActionBarSherlock 4.1.0(截至撰寫本文時爲止,最新的穩定版本)。這種行爲在Android 2.2(我支持的最早版本)和Android 4.1上都會發生。
我的ABS初始化代碼:
setContentView(R.layout.main); // XML layout that currently contains only the ViewPager
mViewPager = (ViewPager) findViewById(R.id.viewPager);
// Set up action bar
ActionBar ab = getSupportActionBar();
Drawable gd = getResources().getDrawable(R.drawable.actionbar_bg); // Background gradient
ab.setBackgroundDrawable(gd);
ab.setCustomView(R.layout.actionbar_custom); // For this example, contains just a TextView
ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
// Set up tabs
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mTabsAdapter = new TabsAdapter(this, mViewPager);
mTabsAdapter.addTab(ab.newTab().setText("Tab 1"), Tab1Fragment.class, null);
mTabsAdapter.addTab(ab.newTab().setText("Tab 2"), Tab2Fragment.class, null);
mTabsAdapter.addTab(ab.newTab().setText("Tab 3"), Tab3Fragment.class, null);
不,這是一個在Android 4.1中可以修復的錯誤。 –
抱歉,但我不明白這是如何適用於你。如果添加了actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME);在ActionBar.DISPLAY_SHOW_CUSTOM之後,它不再爲我顯示自定義的ActionBar – Egis