2014-01-16 4 views
0

Я создал фрагмент с текстом и изображением:Как показать фрагмент в диалоге?

public class ContentFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_content, container, false); 

     return view; 

    } 

} 

Есть ли способ, чтобы получить его, чтобы показать в диалоге?

Например:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder.setTitle("Showing a fragment in a dialog"); 

// Load fragment as dialog content somehow 

AlertDialog alert = builder.create(); 

alert.show(); 

ответ

1

Каждый диалог имеет setView метод, который вы можете создать программно или завышать см это example
Вы должны также рассмотреть использование DialogFragment

+0

Я только что обновил ссылку на пример. – NickF

+0

Спасибо. Я изменил ContentFragment, чтобы расширить DialogFragment вместо Fragment, а затем использовал setView() для отображения фрагмента в диалоговом окне. – tpbapp

1

AlertDialog не предполагается разместить фрагмент.

Обходные вы можете использовать это, чтобы заменить диалоговый пользовательский интерфейс, который может быть достигнут путем:

dialog.setContentView(R.layout.fragment_content) 

Это будет просто изменить диалоговый вид, если вы хотите связать событие или данные управления внутри фрагмента , вам нужно сделать это после setContentView

+0

Так что, используя setContentView(), не запускается ни один из кода фрагмента, как в onCreateView()? – tpbapp

+0

К сожалению, этого не произойдет. Это просто раздует представление. – Lowkey

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