2012-07-04 8 views
15

アクションバーのスピナーを選択した(アクションバーの上に表示されている)アイテムとドロップダウンリストのアイテムと異なるようにするにはどうすればよいですか? 例は、アクションバーでスピンナーでGoogleのメールです:Androidのアクションバーのスピナーが選択されたアイテム、サブタイトル、ドロップダウンリスト

action_bar_pattern_spinner

  • どのように彼らはこの機能を実現しましたか?
  • ドロップダウンリストの同じ項目に影響を与えずに、アクションバーの選択した項目を変更できますか?
  • アクションバーの選択項目を2行と異なるフォントに変更したが、ドロップダウンリストの項目に影響しなかったのはどうでしたか?
  • これは、ICSとアクションバーのsherlockのアクションバースピナーのデフォルトの実装でこれを実現することは可能ですか?カスタムビューで試すべきですか?

すべてのソースコード、チュートリアル、またはドキュメントは本当に役に立ちます。 私は既にアクションバーにアダプタ付きバインドスピナーを持っており、ドロップダウンメニューにリストがありますが、ドロップダウンリストのアイテムに影響を与えずに(同じものなので)何らかの方法でアイテムを変更することはできません。

答えて

6

手遅れ少しかもしれないが、コードは、Android開発者のウェブサイト上で見つけることができますコメントとチュートリアル: http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown

基本は活動中にあなたがリストであるためにそれを設定する必要がOnCreate関数ということです:

 getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

通常のスピナーと同様に、スピナーアダプターと2つのコールバックを作成します。

は、スピナーリストの中よりもアクションバーのスピナーで異なる見解を持っているために

20

を助け、あなたがBaseAdapterやArrayAdapterを使用して、いくつかのメソッドをオーバーライドすることを願って:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    // Return a view which appears in the action bar. 

    return yourCustomView..; 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    // Return a view which appears in the spinner list. 

    // Ignoring convertView to make things simpler, considering 
    // we have different types of views. If the list is long, think twice! 
    return super.getView(position, null, parent); 
    } 
+0

はい、これがあります適切な解決策。 – VladacusB

+4

これは彼らのやり方です:[source](https://android.googlesource.com/platform/packages/apps/Calendar.git/+/d31b90f25456652b81be7c8349d7e10db1fa9338/src/com/android/calendar/CalendarViewAdapter.java) – Jay

関連する問題