10

Trong ứng dụng của chúng tôi, chúng tôi có một vài đoạn có thể được hiển thị dưới dạng đoạn toàn màn hình hoặc dưới dạng đoạn hộp thoại. Những mảnh vỡ này kế thừa từ DialogFragment và chúng tôi đảm bảo tạo ra chúng một cách chính xác tùy thuộc vào chế độ ứng dụng được thực hiện trong (toàn màn hình hoặc hộp thoại).Thanh công cụ trong DialogFragment

Chúng tôi đã nghĩ đến việc thêm một số chức năng bổ sung vào một số đoạn hộp thoại sau khi thay đổi mới nhất trong tiện ích Toolbar được giới thiệu trong thư viện hỗ trợ với Lollipop. Ý tưởng là có loại trình đơn tùy chọn mà chúng ta thường có trong một phân đoạn thông thường (tức là menu tùy chọn tăng cao sau khi thực hiện onCreateOptionsMenu) chỉ có trong các lớp con của chúng tôi là DialogFragment CHỈ khi chúng được hiển thị dưới dạng hộp thoại. Trong ngắn hạn: khi các mảnh được hiển thị ở chế độ toàn màn hình, chúng tôi tăng cường menu tùy chọn truyền thống và khi các đoạn được hiển thị dưới dạng hộp thoại, chúng tôi muốn có menu tùy chọn tương tự tăng cao nhưng sử dụng tiện ích thanh công cụ mới ở chế độ độc lập.

Tôi đã làm theo các bước từ http://android-developers.blogspot.dk/2014/10/appcompat-v21-material-design-for-pre.html và tôi đã quản lý để "kích hoạt" thanh công cụ, nhưng có vẻ như menu không bị thổi phồng - xem ảnh chụp màn hình đính kèm (ảnh một đoạn trong chế độ toàn màn hình và hình ảnh hai trong chế độ hộp thoại).

Thậm chí có thể thổi phồng menu tùy chọn bằng thanh công cụ mới trong DialogFragment không?

fullscreen modedialog mode

+1

Thanh công cụ không được giả định trong hộp thoại, giả sử là một phần của bạn r hoạt động bố trí. đó là một giao diện rất khó hiểu mà bạn muốn có – tyczj

Trả lời

20

Thậm chí có thể tăng thêm tùy chọn menu với thanh công cụ mới trong một DialogFragment?

đầu tiên của tất cả các thiết kế của bạn là ok và thanh công cụ là vụ phải được sử dụng mỗi nơi cho phép có một cái nhìn lúc này từ Chris Banes google kỹ sư link:

// Set an OnMenuItemClickListener to handle menu item clicks 
toolbar.setOnMenuItemClickListener(
     new Toolbar.OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // Handle the menu item 
       return true; 
      } 
}); 

// Inflate a menu to be displayed in the toolbar 
toolbar.inflateMenu(R.menu.your_toolbar_menu); 

và cũng android phát triển thanh công cụ độc lập mẫu:

http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

+0

Cảm ơn.Tôi đã 100% tích cực nó có thể được thực hiện, như hình ảnh Chris Banes gắn liền với bài viết của mình chứng minh nó. Tôi tìm thấy sai lầm của tôi sau khi đọc bài đăng của mình cho lần thứ 5 :-) –

+0

Giới thiệu về ứng dụng (được tìm thấy ở đây: https://play.google.com/store/apps/details?id=com.google.samples.apps .ios), đây là ảnh chụp màn hình: https://lh3.googleusercontent.com/Xwh9uUA-TvDYAFtadcPrR578GJGxbZu5Z2KuUv5U0v3QqzvQzpHR9nuDMUhMsPgVbS8=h900 –

4

Vâng, DialogFragment có setHasOptions() chức năng. Xác định thanh công cụ trong bố cục của hộp thoại của bạn và sử dụng nó như thể nó đang ở trong một hoạt động. Một thanh công cụ doesnt tâm là trong một hoạt động hoặc một đoạn hoặc một đoạn thoại .......

Hãy chắc chắn rằng bạn sử dụng

setHasOptionsMenu(true) in onActivityCreated method.... 

Sau đó, khi ghi đè thông thường

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.my_menu, menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    return super.onOptionsItemSelected(item); 
} 
+0

Làm cách nào tôi có thể sử dụng 'Thanh công cụ' ở chế độ độc lập nếu tôi không gắn dây và làm tăng menu? Giải pháp của bạn chỉ ghi đè menu tùy chọn mặc định được chỉ định trong hoạt động lưu trữ. Nó không làm cho một đoạn hộp thoại có một thanh công cụ –

+0

nó làm cho .... tôi đã sử dụng cùng một điều bằng cách sử dụng setActionBar (myToolbar) –

+0

Điều này không hoạt động. Thay vào đó, nó xử lý thanh công cụ của hoạt động. –

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