Intereting Posts
Сколько средств на протяжении всего жизненного цикла Android слишком много? Элементы, которые не отображаются в ActionBar с showAsAction = "always" Я не вижу свое приложение в списке недавно открытых приложений для Android Как я могу получить текущее название города в android? Как получить предпочтение рингтона во время выполнения? Чтобы активность Android всегда использовалась в режиме ландшафта Получение значения String из Spinner, поддерживаемого CursorAdapter, из SQL-запроса в Android Android – выполнить задачу Gradle только в версии версии сборки Программно скрывать мягкую клавиатуру в ViewPager.OnPageChangeListener onPageSelected ()? Параметры повторной настройки Как проверить, существует ли ресурс в Android Как заблокировать вызовы в android FCM (Firebase Cloud Messaging) Отправить на несколько устройств Как сохранить работу службы в фоновом режиме даже после выхода пользователя из приложения? 2-столбце TableLayout с 50% точно для каждого столбца

DialogFragment с дополнительным пространством ниже ListView

Как вы можете видеть, ниже элемента нижнего списка в моем ListView есть избыточное пространство, от которого я не могу избавиться. Я пробовал Relative и Linearlayout, оба выглядят так. Вот код: Введите описание изображения здесь

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 } } 

И код, который запускает диалог:

 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"); } 

Solutions Collecting From Web of "DialogFragment с дополнительным пространством ниже ListView"

Я знаю, что этот вопрос никогда не привлекал большого внимания, но я, наконец, решил проблему.

Используя список, созданный в XML, вместо установки адаптера строителя, мне удалось избавиться от всего лишнего пространства.

Вот как выглядит новый код:

  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(); 

Если вы настраиваете пользовательский вид в диалоговом окне оповещений (через setView ()), ТОЛЬКО имеет ListView, вам не нужно использовать настраиваемое представление. Строитель автоматически добавит ListView в представление, если вызывается назначенный адаптер. Дополнительное пространство в конце представления списка, вероятно, является вашим пользовательским представлением без содержимого.

Например:

  @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(); }