2013-05-28 57 views
2

請讓我知道如何將按鈕添加到標題欄。Android - 爲標題添加按鈕

  • 完全刪除標題並使用ImageView創建自定義標題。

  • 使用其他方法

我的目標是什麼類似於Facebook應用程序 enter image description here

UPDATE: API等級> = 10

+1

我通常會製作自己的標題欄,因此我可以添加按鈕,狀態圖標...需要編寫自己的ViewGroup。 –

+0

感謝您的回覆......我想知道這是否是最佳實踐方法? –

+1

此鏈接可以幫助你:http://stackoverflow.com/questions/5663068/custom-viewgroup-example-please –

回答

0

我認爲,這是使用Android的動作條最佳實踐。 優先選擇操作菜單,而不是自定義標題欄中的按鈕。

請參閱:There's given refresh and edit action menu

而且爲進一步實施動作條的請參考:

  1. http://www.vogella.com/articles/AndroidActionBar/article.html
  2. developer.android.com/guide/topics/ui/actionbar.html
+0

感謝您的回覆,我更新了我的問題...API等級10是我的最低版本。 –

+0

是的..!可以選擇從API級別8獲得支持,您可以使用SherlockActionbar庫.. 請從以下網址下載庫:http://actionbarsherlock.com/ – Prat

+0

酷...我會用它:) –

0

我的解決方案使用自定義ViewGroup(來自RelativeLayout),因此我可以在不使用複製粘貼xml的情況下在不同的活動中使用它。這是一個用標題更新文本視圖的簡單示例。您可以將按鈕添加到相對佈局,讓他們以您需要的方式工作。

但如果你只是一個活動是更好,如果你把它作爲你的活動

public class StatusBar extends RelativeLayout { 

private TextView textViewTitle; 

    public StatusBar(Context context, AttributeSet attrs) { 
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     layoutInflater.inflate(R.layout.ui_status_bar, this, true); 
     super(context, attrs); 
} 

@Override 
    public void onFinishInflate() { 
     super.onFinishInflate(); 

     textViewTitle = (TextView) findViewById(R.id.textViewTitle); 
} 

private void updateStatusBar(String title) { 
this.textViewTitle.setText(title) 
} 
} 

主要佈局和ui_status_bar.xml的子佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/theme_color_darker" 
    android:gravity="center_vertical" > 

    <TextView 
     android:id="@+id/textViewTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="5dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textStyle="bold" /> 

</RelativeLayout> 

您的活動中你可以這樣使用它:

<com.uicomponents.statusbar.StatusBar 
    android:id="@+id/statusBar" 
    style="@style/status_bar" /> 

+0

感謝您的答覆。只需說清楚:R.layout.ui_status_bar是對XML的引用?你能詳細說一下嗎? –

+0

如果您對custm View和viewGroups沒有經驗,很難解釋。 layout.ui_status_bar.xml進入Android項目的佈局/文件夾。當您編譯時,可以通過從資源引用(即R.layout.ui_status_bar)加載該佈局,就像您爲該活動加載佈局一樣。 –