Есть ли способ добавить кнопку внизу экрана настроек и заставить их работать правильно при прокрутке?
106
Есть ли способ добавить кнопку внизу экрана настроек и заставить их работать правильно при прокрутке?
Ответы:
Есть еще одно решение для настройки внешнего вида предпочтений.
Создайте обычный XML-макет с кнопками или тем, что вы хотите добавить к стандартным настройкам. Включите
ListView
в свой макет и присвойте ему идентификатор@android:id/list
.Допустим, мы вызываем файл макета
res/layout/main.xml
. Это могло выглядеть примерно так:В вашем
PreferenceActivity
добавьте эти две строки в свойonCreate
:Затем
ListView
в вашем макете будут заменены предпочтения, определенные обычным образом вres/xml/preferences.xml
.источник
Я знаю, что это немного поздно, но я только что нашел решение, которое мне нравится больше, чем хваленое решение Макса.
Вы можете просто добавить нижний колонтитул (или, если хотите, чтобы кнопка была сверху, верхний колонтитул) в ListView PreferenceActivity следующим образом:
Я надеюсь, что это поможет кому-то.
источник
ListView
помощью PreferenceFragment :(PreferenceFragment
есть собственный список), но я решил это, просто создавPreference
и установив дляIntent
него. Не было необходимости создавать кнопку (по крайней мере, в моем случае)В приведенном ниже примере будет отображаться кнопка внизу страницы (на случай, если кому-то все еще интересно).
В случае LinearLayout вы также можете применить веса; это необходимо, потому что для Listview установлено значение * fill_parent *. Обычно я делаю это, добавляя * android: layout_weight *:
Приведенное ниже объяснение, вероятно, не на 100%, но оно поможет вам понять ...
Вы также можете сказать, потому что Button не имеет веса; кнопка отображается на высоте 0dp.
Теперь, когда добавлен layout_weigths, кнопка будет отображать inview.
источник
Собственно, выход есть. Вот код, надеюсь, он будет кому полезен. Похоже, 3 варианта и 2 кнопки внизу экрана, независимо от разрешения экрана (было задано как минимум 240).
источник
Вам просто нужно использовать PreferenceFragment внутри общего действия и добавить кнопку в макет действия.
SettingActivity.java
activity_setting
источник
buttonSave
:)Вот как выглядит код в упражнении на примере Ронни. Я намеревался разместить меню в нижней части экрана.
источник
Я ссылаюсь на @Ronnie, использую RelativeLayout и устанавливаю высоту для layout_height списка, а затем устанавливаю layout_alignParentBottom кнопки = "true". Он может отображать кнопку в нижней части PreferenceScreen; затем используйте способ @Max. это работает для моих нужд.
источник
Также можно добавить кнопки действий на панель действий для стандартного подхода Android.
источник
Пользовательский вид в Preference Activity, это поможет добавить пользовательский вид в PreferenceActivity в Android.
Создайте main.xml, единственное необходимое представление - это ListView с id :
android:id="@android:id/list"
.Создать CustomPreferenceActivity.java
источник
Ниже приводится простое решение для добавления интерактивной кнопки на экран настроек. Это стало проще, потому что в настройках уже зарезервировано место в android: widgetLayout, а кнопка может передавать клики с помощью android: onClick.
Сначала создайте button.xml с содержимым
Теперь в вашем файле preferences.xml добавьте настройку
Теперь ваша PreferenceActivity должна содержать только член onButtonClick
источник
Preferences.xml:
SettingsFragment.java:
источник
Я обнаружил, что все вышеперечисленные ответы непригодны для использования, поскольку любые макеты, которые я создал, чтобы «обернуть»
PreferenceScreen
контейнер внутри пользовательских макетов (а затем добавить кнопку подListView
), на самом деле не сработали.Они только накладывают настраиваемый макет поверх списка предпочтений (плавающий), и нажатие (например) новой настраиваемой кнопки вызовет только предпочтение под кнопкой.
Однако я нашел это решение, которое отлично подходит для добавления кнопки под контейнером списка настроек при использовании
PreferenceFragment
.источник