2014-11-22 2 views
11

Полноэкранные диалоги в дизайне материалов должны иметь подтверждение и отклонение действий на панели действий/панели инструментов.Подтверждение и отключение экрана для полноэкранного экрана Android

Material design fullscreen dialog

Мой вопрос, как я могу это сделать?

Чтобы показать диалог:

getFragmentManager().beginTransaction() 
    .add(R.id.container, new MyDialogFragment()) 
    .addToBackStack(null).commit(); 

Мой диалог фрагмент:

public class MyDialogFragment extends DialogFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_layout, container, false); 
    } 
} 
+1

Что делает ваш макет файла выглядеть? У меня возникли проблемы с созданием полноэкранного диалога, и, похоже, вам это удалось. – Jon

+0

Можете ли вы рассказать о том, с какими трудностями вы столкнулись? Сама компоновка должна быть такой простой или сложной, как вы хотите, я предполагаю, что вы сделали макеты для действий и фрагментов. Единственное визуальное отличие для полноэкранного диалога - это области, которые я выделил красным цветом. – SunnySydeUp

+0

Я думаю, что этот вопрос (http://stackoverflow.com/questions/30684312/android-full-screen-dialog-callback-issue) подводит итог. По умолчанию диалог не является полноэкранным. – Jon

ответ

19

только две вещи должны быть сделаны:

  • изменить вверх значок
  • Добавить меню к фрагменту

Изменение иконок:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    ((ActionBarActivity) getActivity()).getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel); 
} 

Добавить Сохранить меню:

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

R.menu.save_menu:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/save 
     app:showAsAction="always|withText" 
     android:title="@string/save"/> 
</menu> 
+0

Не следует ли восстановить панель действий действия при отклонении диалога? – Gonzalo

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