0

enter image description hereHow to remove the empty space in the dialog. My code-

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal"
    android:padding="10dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_2x_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_2x_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2X"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_1_5x_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_1_5x_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1.5X"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_1_point_25_x_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_1_point_25_x_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1.25X"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_normal_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_normal_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Normal"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_normal_75x_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_point_75x_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0.75X"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/quality_dialog_5x_radio_btn_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/quality_dialog_point_5x_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0.5X"
            android:textSize="16sp"
            android:textColor="#003FBC"
            android:padding="5dp"/>

    </LinearLayout>

</LinearLayout>

My Java Code

  View alertLayout = View.inflate(this, R.layout.quality_dialog_layout, null);
        TextView quality2XView = alertLayout.findViewById(R.id.quality_dialog_2x_view_id);
        TextView quality1_5View = alertLayout.findViewById(R.id.quality_dialog_1_5x_view_id);
        TextView quality1_Point25View = alertLayout.findViewById(R.id.quality_dialog_1_point_25_x_view_id);
        TextView qualityNormalView = alertLayout.findViewById(R.id.quality_dialog_normal_view_id);
        quality_point75View = alertLayout.findViewById(R.id.quality_dialog_point_75x_view_id);
        quality_point5View = alertLayout.findViewById(R.id.quality_dialog_point_5x_view_id);
        quality2XRadioBtn = alertLayout.findViewById(R.id.quality_dialog_2x_radio_btn_view_id);
        quality1_5RadioBtn = alertLayout.findViewById(R.id.quality_dialog_1_5x_radio_btn_view_id);
        quality1_Point25RadioBtn = alertLayout.findViewById(R.id.quality_dialog_1_point_25_x_radio_btn_view_id);
        qualityNormalRadioBtn = alertLayout.findViewById(R.id.quality_dialog_normal_radio_btn_view_id);
        quality_point75RadioBtn = alertLayout.findViewById(R.id.quality_dialog_normal_75x_radio_btn_view_id);
        quality_point5RadioBtn = alertLayout.findViewById(R.id.quality_dialog_5x_radio_btn_view_id);

        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setView(alertLayout);
        alert.setCancelable(true);

        qualityAlertDialog = alert.create();
        qualityAlertDialog.show();
Bhaskar Jyoti Dutta
  • 1,740
  • 2
  • 15
  • 30

1 Answers1

0

Suggestion 1:

In order to customize the AlertDialog theme you have to create a new theme for it, which is a bit complicated and quite hard as you have also to create proper images etc.

Regarding this option you can check this topic here

Suggestion 2:

Include the button in the xml:

<Button android:text="OK" 
style="?android:attr/borderlessButtonStyle" />

Suggestion 3:

Use the AlertDialog options and don't change the theme, this will add proper spacing in all options and follow the android theming so it will not look strange, but will not remove the spacing you mentioned:

    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setSingleChoiceItems(R.array.your_array_options, null/* no item preselected*/,
                  new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
               // handle the item selection here
           }
       }
    );
    alert.setCancelable(true);

    qualityAlertDialog = alert.create();
    qualityAlertDialog.show();

and the your_array_options will be in a file res/values/array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="your_array_options">
        <item>2X</item>
        <item>1.5X</item>
        <item>1.25X</item>
         ...
    </string-array>
</resources>

Suggestion 4:

In order to have full customized theme then do not use AlertDialog at all but DialogFragment:

public class MyDialogFragment extends DialogFragment {
// ...


 // Empty constructor required for DialogFragment
public MyDialogFragment() {}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
  View view = inflater.inflate(R.layout.quality_dialog_layout, container);
    TextView quality2XView = alertLayout.findViewById(R.id.quality_dialog_2x_view_id);
    TextView quality1_5View = alertLayout.findViewById(R.id.quality_dialog_1_5x_view_id);
    TextView quality1_Point25View = alertLayout.findViewById(R.id.quality_dialog_1_point_25_x_view_id);
    TextView qualityNormalView = alertLayout.findViewById(R.id.quality_dialog_normal_view_id);
    quality_point75View = alertLayout.findViewById(R.id.quality_dialog_point_75x_view_id);
    quality_point5View = alertLayout.findViewById(R.id.quality_dialog_point_5x_view_id);
    quality2XRadioBtn = alertLayout.findViewById(R.id.quality_dialog_2x_radio_btn_view_id);
    quality1_5RadioBtn = alertLayout.findViewById(R.id.quality_dialog_1_5x_radio_btn_view_id);
    quality1_Point25RadioBtn = alertLayout.findViewById(R.id.quality_dialog_1_point_25_x_radio_btn_view_id);
    qualityNormalRadioBtn = alertLayout.findViewById(R.id.quality_dialog_normal_radio_btn_view_id);
    quality_point75RadioBtn = alertLayout.findViewById(R.id.quality_dialog_normal_75x_radio_btn_view_id);
    quality_point5RadioBtn = alertLayout.findViewById(R.id.quality_dialog_5x_radio_btn_view_id);

  // This will also require to add extra buttons in the xml!
  // getDialog().setTitle("If you want to change the title");

  return view;
}

}
madlymad
  • 6,367
  • 6
  • 37
  • 68