15

アクションバーでスピナーを作成して、別のアイテムを選択し (アクションバーの上部に表示)、ドロップダウンリストに表示するにはどうすればよいですか? 例は、アクション バーにスピナーがある Google メールです。

action_bar_pattern_spinner

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

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

4

2 に答える 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);
  }
于 2012-07-31T13:59:59.373 に答える
6

少し遅すぎるかもしれませんが、コメント付きのコードを含むチュートリアルは、Android 開発者の Web サイトにあります: http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown

基本は、アクティビティOnCreate中にリストになるように設定する必要があるということです:

      getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

次に、通常のスピナーの場合と同じように、スピナー アダプターといくつかのコールバックを作成します。

それが役に立てば幸い

于 2012-07-30T11:15:38.930 に答える