2013-07-31 41 views
1

我想在FragmentActivity的一個子項中添加一個自定義標題欄,我有一個標題欄佈局,這就是我的做法。使用ActionBar添加自定義標題欄

final ActionBar actionBar = getActionBar(); 

    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    actionBar.setCustomView(R.layout.title_bar); 

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionBar.addTab(actionBar.newTab().setText("Tab0").setTabListener(this)); 
    actionBar.addTab(actionBar.newTab().setText("Tab1").setTabListener(this)); 
    actionBar.addTab(actionBar.newTab().setText("Tab2").setTabListener(this)); 

但問題是標題欄顯示在標籤下方。我想要導航標籤上方的標題欄。

這是我title_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/titleBar" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/black" > 

    <ImageView 
     android:id="@+id/titleBarMenuBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/menu_btn" /> 


    <TextView 
     android:id="@+id/titleBarLocation" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/titleBarMenuBtn" 
     android:text="Location" 
     android:textColor="@color/white" 
     android:textSize="16dip" /> 


    <TextView 
     android:id="@+id/titleBarUpdateDate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/titleBarMenuBtn" 
     android:layout_alignLeft="@+id/titleBarLocation" 
     android:layout_alignParentRight="true" 
     android:text="Updated: 30/Jul/2013" 
     android:textColor="@color/white" /> 

</RelativeLayout> 

我看到this後,但我的標籤都出現了上述標題欄。

感謝

+0

有一種方法可以解決這個問題,請參考這篇文章http://stackoverflow.com/questions/13760325/action-bar-being-shown-below-its-tabs – pqtuan86

回答

1

顯示你上面的自定義佈局的標籤是預期的默認行爲。雖然有辦法來覆蓋這個。我發現後可能的解決方案:#1#2

此外更多的sherlock行動欄似乎行爲相同的方式。

+0

感謝您的回答...這是否意味着我將不得不製作帶有製表符的自定義標題欄,並且必須添加處理滑動和製表位置更改的功能? –

+0

是的,這似乎是最好的解決方案(參考解決方案#1)。你應該記住,你覆蓋了系統默認的(和用戶預期的)行爲。這就是爲什麼它更復雜一點:) – alex