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:
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:
- Detectar cuando el fragmento se hace visible
- Acceso a TextView en ViewPager desde la actividad
- ¿Cómo puedo cambiar el tamaño de dos fragmentos en la pantalla por el enfoque?
- Cómo saber si un fragmento ya se llama onCreateView ()
- GreenBroot EventBus no pudo enviar el evento
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"); }
- Los datos de ViewPager se pierden al volver de la siguiente pantalla
- La clase de suscriptor no tiene métodos públicos llamados Evento
- Detenga el foco de dpad saliendo del fragmento actual en android
- Android: Fragmentos, SQLite y cargadores
- OnResume () no se llama en SherlockFragment de SherlockFragmentActivity en Android?
- Cómo manejar backPress con Fragmento
- ¿Es posible buscar dentro de Fragmentos?
- Google Maps de Google - Error al inflar el fragmento de clase
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(); }
- ¿Es posible configurar una instalación de Android para ejecutar una sola aplicación?
- Vinculación de Opencv a mi propio proyecto android