2012-12-28 115 views
1

如何將標題添加到動作欄的列表導航?可能嗎?我正在使用Action Bar Sherlock。動作欄列表導航標題

工作原理:

https://dl.dropbox.com/u/16134555/list_nav_1.png

我想要得到這樣的結果:

https://dl.dropbox.com/u/16134555/list_nav_2.pn

活動:

getSupportActionBar().setIcon(R.drawable.logo); 
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME); 
Context context = getSupportActionBar().getThemedContext(); 
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.menu, R.layout.sherlock_spinner_item); 
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); 
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
getSupportActionBar().setListNavigationCallbacks(list, this); 

R.array.menu:

<string-array name="menu"> 
    <item>Menu</item> 
    <item>1</item> 
    <item>2</item> 
</string-array> 
+0

請發表您的行動條碼 – Cameron

+0

應該已經有默認的應用程序名稱爲您的標題。 –

+0

我添加了源代碼。 @JaredBurrows - 我知道,但我想讓列表導航,而不重複菜單作爲標題和菜單項。請比較第一張和第二張照片。 – Ziem

回答

2

這可以通過自定義ArrayAdaptergetView方法來完成,該方法始終設置相同的文本(菜單標題)。

class ActionBarArrayAdapter extends ArrayAdapter<String> { 
    private Context mContext; 

    public ActionBarArrayAdapter(Context context, String[] items) { 
     super(context, 0, items); 
     mContext = context; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = LayoutInflater.from(mContext).inflate(
        R.layout.sherlock_spinner_item, null); 
     } 
     ((TextView) convertView.findViewById(android.R.id.text1)) 
       .setText("Menu"); 
     return convertView; 
    } 
} 

這是如何初始化Adapter

ActionBarArrayAdapter list = new ActionBarArrayAdapter(context, 
      getResources().getStringArray(R.array.menu)); 
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);