Как убрать отступ между заголовком предпочтения и следующим предпочтением?
309 просмотра
2 ответа
Я хотел бы убрать фиолетовый пробел на моем экране предпочтений : предпочтение
чтобы это выглядело так: пример Google Play Store
Я использую Xamarin Android и c # для разработки своего приложения. Экран настроек - это PreferenceFragmentCompat из библиотеки Android.Support.V7.Preferences. Стиль материала установлен в моей пользовательской теме:
<style name="Theme.DarkTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">#673AB7</item>
<item name="colorPrimaryDark">#512DA8</item>
<item name="colorAccent">#039be5</item><!--#FF4081-->
<item name="colorControlHighlight">#242424</item>
<item name="android:listDivider">@style/android:drawable/divider_horizontal_dim_dark</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
Вот как выглядит мой файл ресурсов XML, который я вызываю с помощью AddPreferencesFromResource (Resources.Id.preference_screen) в моей функции PreferenceFragmentCompats OnCreatePreferences ():
<android.support.v7.preference.PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v7.preference.PreferenceCategory
android:title="App">
<Preference
android:key="advsettings_preference"
android:title="Erweiterte Einstellungen" />
<Preference
android:key="license_preference"
android:title="Rechtliche Hinweise" />
</android.support.v7.preference.PreferenceCategory>
</android.support.v7.preference.PreferenceScreen>
Я уже пытался исправить это самостоятельно, добавив атрибуты заполнения в PreferenceScreen, но ничего не изменилось.
Все последние пакеты NuGet от Xamarin Android установлены (v27.0.2). Заранее спасибо.
Автор: pedzer Источник Размещён: 20.07.2019 09:27Ответы (2)
3 плюса
Пожалуйста, попробуйте установить стиль следующим образом;
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<!-- Customize your theme here. -->
<item name="preferenceTheme">@style/MyPreferenceStyle</item>
</style>
<style name="MyPreferenceStyle" parent="@style/PreferenceThemeOverlay.v14.Material">
<item name="preferenceCategoryStyle">@style/MyPreferenceCategoryStyle</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">10dp</item>
</style>
<style name="MyPreferenceCategoryStyle" parent="@style/Preference.Category.Material">
<item name="android:layout">@layout/preference_category</item>
</style>
И preference_category.axml
:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/title"
android:textColor="?android:attr/colorAccent"
android:textSize="14dp"
android:fontFamily="sans-serif-medium"
android:paddingStart="16dp"
android:singleLine="true"
android:paddingTop="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
И AppSettings:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.preference.PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v7.preference.PreferenceCategory
android:title="App">
<Preference
android:key="advsettings_preference"
android:title="Erweiterte Einstellungen"
android:summary="BenachRichtigung"/>
</android.support.v7.preference.PreferenceCategory>
</android.support.v7.preference.PreferenceScreen>
Это решит проблему разрыва. А также похожи на ваш скриншот Google Play Store. Ну, не совсем то же самое из Layout Inspector, но похоже:
Автор: Elvis Xia - MSFT Размещён: 14.03.2018 04:480 плюса
Фиолетовая область при взгляде на ваш макет с «использованием границ макета» во включенных параметрах разработчика представляет поля, а не отступы, насколько я знаю.
Я предлагаю попытаться создать собственный макет для вас PreferenceCategory
и ваших Preference
и установить их в указанном выше axml, используя android:layout
атрибут как таковой:
android:layout="@layout/layout_name"
(Может потребоваться поиграться с обоими android: layout и android: widgetLayout атрибутами)
Автор: Raimo Размещён: 12.03.2018 09:43Вопросы из категории :
- xamarin.android Cairo.Matrix dll дает ссылку на объект ошибки, не установленную для экземпляра объекта
- xamarin.android BroadcastReceiver от службы Monodroid Intent не запускает OnReceive
- xamarin.android Любой имеет опыт работы с архитектурой для кроссплатформенной мобильной разработки под WP7 Android iOS (monotouch, monodroid, C #)
- xamarin.android Фоновое изображение активности Android
- android-preferences How do I display the current value of an Android Preference in the Preference summary?
- android-preferences SharedPreferences.onSharedPreferenceChangeListener не вызывается последовательно
- android-preferences Установка в поле «Сводка предпочтений» пользовательского интерфейса значения предпочтения
- android-preferences Можно ли добавить массив или объект в SharedPreferences на Android?
- preferenceactivity Как получить SharedPreferences из PreferenceActivity в Android?
- preferenceactivity PreferenceActivity: сохранить значение как целое число
- preferenceactivity Как установить результат для активности в Android?
- preferenceactivity How to handle long text in preferences on Android?
- androiddesignsupport Ошибка выброса NavigationView: не найден идентификатор ресурса для атрибута 'menu' в пакете
- androiddesignsupport CollapsingToolbarLayout не работает (сворачивается) при прокрутке
- androiddesignsupport Элементы меню NavigationView со счетчиком справа
- androiddesignsupport Ошибка надувания класса android.support.design.widget.NavigationView
- preferencescreen Android preference icons not centered on devices => Lollipop
- preferencescreen Как использовать support.v7.preference с AppCompat и потенциальные недостатки
- preferencescreen Android PreferenceScreen и доступ к экземпляру настроек виджета
- preferencescreen PreferenceActivity with multiple PreferenceScreens without Headers