10

В нашем приложении у нас есть несколько фрагментов, которые могут быть показаны либо как полноэкранные фрагменты, либо как фрагменты диалога. Эти фрагменты наследуют от DialogFragment, и мы обязательно создадим их корректно в зависимости от режима, в котором приложение выполняется (в полноэкранном режиме или в диалоговом окне).Панель инструментов в DialogFragment

Мы подумали о добавлении некоторых дополнительных функций к некоторым из этих фрагментов диалога после того, как последние изменения в виджете Toolbar были представлены в библиотеке поддержки с Lollipop. Идея состоит в том, чтобы иметь тип меню опций, которое мы обычно имели бы в обычном фрагменте (то есть меню опций, завышенное после выполнения onCreateOptionsMenu), присутствующих в наших подклассах DialogFragment ТОЛЬКО, когда они визуализируются как диалоги. Короче говоря: когда фрагменты отображаются в полноэкранном режиме, мы раздуваем традиционное меню опций, и когда фрагменты отображаются в виде диалогов, мы хотели бы иметь такое же меню опций, но используя новый виджет панели инструментов в автономном режиме.

Я выполнил шаги от http://android-developers.blogspot.dk/2014/10/appcompat-v21-material-design-for-pre.html, и мне удалось «активировать» панель инструментов, но, похоже, меню не завышено - см. Прикрепленные скриншоты (изображение одного фрагмента в полноэкранном режиме и изображение два в режиме диалога).

Возможно ли раздуть меню опций с помощью новой панели инструментов в DialogFragment?

fullscreen modedialog mode

+1

панель инструментов не предполагают, чтобы быть в диалоге, то предполагают, чтобы быть частью вас r. это очень запутанный интерфейс, который вы хотите иметь. – tyczj

ответ

20

ли даже можно надуть опции из меню с новой панелью инструментов в a DialogFragment?

первую очередь вашего дизайна хорошо и панель инструментов, как предполагается, будет использоваться каждый, где позволяет взглянуть на это с Крис Бэйнс инженер Google 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); 

, а также для разработчиков Android панели инструментов автономного образец:

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

+0

Спасибо.Я был на 100% уверен, что это можно сделать, так как картина, наложенная на его пост, подтверждает Крис Банес. Я нашел свою ошибку после прочтения его сообщения в пятый раз :-) –

+0

Об этом приложении (которое находится здесь: https://play.google.com/store/apps/details?id=com.google.samples.apps .), вот скриншот: https://lh3.googleusercontent.com/Xwh9uUA-TvDYAFtadcPrR578GJGxbZu5Z2KuUv5U0v3QqzvQzpHR9nuDMUhMsPgVbS8=h900 –

4

Да, DialogFragment имеет setHasOptions функция(). Определите панель инструментов в макете вашего диалога и используйте ее так, как если бы она была в действии. Панель инструментов оленья кожа ум, находясь в деятельности или фрагмента или диалоговым фрагмента .......

Убедитесь, что вы используете

setHasOptionsMenu(true) in onActivityCreated method.... 

Затем, как обычно переопределения

@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

Как использовать панель инструментов в автономном режиме, если я не подключаю ее и не раздуваю меню? Ваше решение просто отменяет меню параметров по умолчанию, указанное в активности хоста. Он не делает фрагмент диалога с панелью инструментов –

+0

, он действительно делает .... Я использовал то же самое, используя setActionBar (myToolbar) –

+0

Это не работает. Вместо этого он обрабатывает панель инструментов самой активности. –

Смежные вопросы