Extra padding / margin añadido a DatePicker en Android 7.1.1

Estoy tratando de hacer un cuadro de diálogo personalizado que muestra el DatePicker, pero el elemento añade un margen adicional / relleno a la derecha de la vista. Esto ocurre sólo en Android 7.1.1, Nexus 6P, pero funciona perfectamente bien en otros teléfonos de baja resolución. ¿Cómo puedo eliminar el relleno adicional? Mi código de diseño XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <DatePicker android:id="@+id/date_picker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:endYear="2012" android:startYear="1930" /> </LinearLayout> 

Parece esto en Android 7.1.1: Problema Captura de pantalla

Editar: Añadido mi código Java:

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_attributes); assert getSupportActionBar() != null; getSupportActionBar().setTitle("Register"); final TextView birthDateSelectedTextView = (TextView) findViewById(R.id.text_view_birth_date); Button dialogOpenButton = (Button) findViewById(R.id.button_dialog_date_picker); dialogOpenButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Dialog dialog = new Dialog(UserAttributesActivity.this); final AlertDialog.Builder builder = new AlertDialog.Builder(UserAttributesActivity.this); LayoutInflater inflater = getLayoutInflater(); View dialogView = inflater.inflate(R.layout.dialog_date_picker, null); builder.setView(dialogView); final DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { day = datePicker.getDayOfMonth(); month = datePicker.getMonth() + 1; year = datePicker.getYear(); String date = "" + day + "/" + month + "/" + year; birthDateSelectedTextView.setText(date); } }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.show(); } }); } 

Añadir estilo con AlertDialog.Builder como sigue.

 AlertDialog.Builder builder = new AlertDialog.Builder(UserAttributesActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar); 

@Ankita tiene razón, pero si estás usando AppCompat las cosas son un poco más involucradas:

Defina un nuevo estilo y amplíe el estilo Light.Dialog de Light.Dialog

 <style name="DatePickerDialogStyle" parent="@style/Theme.AppCompat.Light.Dialog"> ... </style> 

A continuación, agregue atributos para imitar la parte NoActionBar :

 <style name="DatePickerDialogStyle" parent="@style/Theme.AppCompat.Light.Dialog"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Por último, ahora que ya no AppTheme colores app app de tu AppTheme , AppTheme en tu nuevo tema:

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> </style> <style name="DatePickerDialogStyle" parent="@style/Theme.AppCompat.Light.Dialog"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="colorPrimary">@color/primary<item> <item name="colorPrimaryDark">@color/primary_darkitem> <item name="colorAccent">@color/accent</item> </style> 

A continuación, aplique este nuevo tema:

 AlertDialog.Builder builder = new AlertDialog.Builder(UserAttributesActivity.this, DatePickerDialogStyle); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.