2012-07-04 42 views
15

Làm cách nào để làm cho thanh spinner hoạt động có mục khác nhau như được chọn (hiển thị trên thanh tác vụ) sau đó trong danh sách thả xuống? Ví dụ là google mail với spinner trong thanh hành động:Danh sách mục, danh sách phụ đề và danh sách thả xuống của thanh tác vụ Android

action_bar_pattern_spinner

  • Làm thế nào mà họ đạt được chức năng này?
  • Tôi có thể thay đổi mục đã chọn trong thanh tác vụ mà không ảnh hưởng đến cùng một mục trong danh sách thả xuống không?
  • Cách họ thay đổi mục đã chọn trong thanh tác vụ để có hai hàng và phông chữ khác nhau nhưng không ảnh hưởng đến mục trong danh sách thả xuống?
  • Điều này có thể đạt được điều này với việc thực thi mặc định của thanh hành động spinner trong ICS và thanh hành động sherlock hoặc chúng ta nên thử với chế độ xem tùy chỉnh?

Bất kỳ mã nguồn, hướng dẫn hoặc tài liệu nào sẽ thực sự hữu ích. Tôi đã kết nối spinner với adapter trong thanh tác vụ và tôi có danh sách trong menu thả xuống, nhưng tôi không thể sửa đổi trong bất kỳ mục nào mà không ảnh hưởng đến mục trong danh sách thả xuống (vì chúng giống nhau).

Trả lời

6

nó có thể là một chút quá muộn, nhưng các hướng dẫn với mã nhận xét có thể được tìm thấy trên trang web của nhà phát triển Android: http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown

những điều cơ bản là trong quá trình hoạt động OnCreate bạn phải đặt nó vào được một danh sách :

 getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

rồi tạo bộ nối tiếp và một số lần gọi lại giống như bạn làm với máy quay bình thường.

hy vọng nó sẽ giúp

20

Để có một cái nhìn khác nhau trong spinner thanh hành động hơn trong danh sách spinner, bạn có thể sử dụng một BaseAdapter hoặc một ArrayAdapter và ghi đè lên một số phương pháp:

@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

Có điều này là giải pháp thích hợp. – VladacusB

+4

vâng, đó là cách họ đã làm: [source] (https://android.googlesource.com/platform/packages/apps/Calendar.git/+/d31b90f25456652b81be7c8349d7e10db1fa9338/src/com/android/calendar/CalendarViewAdapter.java) – Jay

Các vấn đề liên quan