Piffen
Piffen

Reputation: 55

Custom style on DialogFragment

Possible duplicate here, sorry in that case...

I can't get my head around how to add a custom style to my DialogFragment. At the moment I have a class

public final class SelectFragment extends DialogFragment {

which I call from different parts of my app. E.g from my "CreateInvoice" class like this:

private void showFragment(int selectedIndex) {
    SelectFragment fragment = SelectFragment.newInstance(selectedIndex, getOnOptionSelectListener());
    fragment.setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog);
    fragment.show(getActivity().getSupportFragmentManager(), "");
}

What I want to do is to change the fragment.setStyle to a custom one, for example with my own color scheme as color on the border, background etc.. And I would really appreciate if someone could walk me through it since it's the first time I've worked with fragments. :-)

Thanks!

Upvotes: 1

Views: 1102

Answers (1)

ardevd
ardevd

Reputation: 3407

The way I would do it is to simply write your own layout for your dialog, then load it up when you show the fragment

 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        View v = inflater.inflate(R.layout.custom_dialog_layout, null, false);
        builder.setView(v)
        // Add action buttons
               .setPositiveButton(R.string.save_note, new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                       // do stuff 
                   }
               })
               .setNegativeButton(R.string.note_cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                           //do stuff
                   }
               });      

Upvotes: 1

Related Questions