DialogFragment con espacio adicional debajo de ListView

Como puede ver, debajo del elemento de lista inferior en mi ListView, hay un exceso de espacio al que no puedo parecer que se deshaga. He intentado Relative y Linearlayout, ambos se parecen a esto. Aquí está el código: Introduzca aquí la descripción de la imagen

public class ChooseDialog extends DialogFragment implements DialogInterface.OnClickListener { String URLhome; String Title; String type; /* public static ChooseDialog newInstance() { ChooseDialog dialog = new ChooseDialog(); Log.v("a", "shit runs"); Bundle bundle = new Bundle(); dialog.setArguments(bundle); return dialog; }*/ public ChooseDialog(String type) { this.type = type; } @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); setCancelable(true); int style = DialogFragment.STYLE_NORMAL, theme = 0; setStyle(style, theme); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(type); builder.setNegativeButton("Cancel", this); LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View dialogLayout = inflater.inflate(R.layout.dialog, null); builder.setView(dialogLayout); final String[] items = {"Red", "Green", "Blue" }; builder.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Log.v("touched: ", items[which].toString()); }} ); return builder.create(); } @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } } 

Y el código que lanza el diálogo:

 public OnClickListener listener = new OnClickListener() { public void onClick(View v) { showNationalityDialog(); } }; private void showNationalityDialog() { FragmentManager fm = getSupportFragmentManager(); ChooseDialog nationalityDialog = new ChooseDialog("Nationality"); nationalityDialog.show(fm, "fragment_edit_name"); } 

Sé que esta pregunta nunca llamó mucha atención, pero finalmente resolví el problema.

Al usar el listview que creé en XML en lugar de configurar el adaptador del constructor, logré deshacerme de todo el espacio excedente.

Así es como se ve el nuevo código:

  switch (editText.getId()) { case (0) : ListView list = (ListView) dialogLayout.findViewById(R.id.listView1); list.setAdapter(new ArrayAdapter<String>(activity, R.layout.dialoglist, activity.getResources().getStringArray(R.array.ageArray))); list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { editText.setText(activity.getResources().getStringArray(R.array.ageArray)[arg2]); dismiss(); } }); builder = (Integer.parseInt(android.os.Build.VERSION.SDK) < 11)? new AlertDialog.Builder(activity) : new AlertDialog.Builder(activity, android.R.style.Theme_Translucent); builder.setNegativeButton("Cancel", this); builder.setView(dialogLayout); return builder.create(); 

Si está configurando una vista personalizada en el cuadro de diálogo de alerta (a través de setView ()) que SOLAMENTE tiene un ListView, entonces no necesita usar una vista personalizada. El constructor agregará automáticamente un ListView a la vista si se llama al adaptador de conjunto. El espacio adicional al final de la vista de lista es probablemente su vista personalizada sin contenido.

Por ejemplo:

  @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final AccountChooserListAdapter adapter = new AccountChooserListAdapter(getActivity(), R.layout.choose_account_list_item, accountMetadataFactory.getAccountsAsList()); return new AlertDialog.Builder(getActivity()) .setCancelable(true) .setTitle(getActivity().getString(R.string.title_add_account)) .setAdapter(adapter, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { listener.onAddAccount(which); } }) .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); } 
  • ¿Podría mantener la posición de ScrollView después de volver a Fragment anterior como ListView?
  • Flip imágenes en un viewpager
  • Fragmento anidado con referencia de actividad incorrecta después del cambio de configuración
  • Problemas de memoria - fragmentos
  • Anular el oyente en Fragment onDetach ()?
  • OnOptionsItemSelected in activity se llama before onOptionsItemSelected en el fragmento. Otra forma posible?
  • EventBus: la actividad no recibe un evento cuando la aplicación está en segundo plano
  • OnCreate () se llama cuando se vuelve a abrir desde una tarea reciente después de cambiar la configuración del permiso
  • ViewPager dentro de Fragmento no muestra a pesar de usar getChildFragmentManager () al construir FragmentPagerAdapter
  • Fragmento Entrada recursiva a executePendingTransactions Error
  • Usos de etiquetas de fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.