2014-11-16 1 views
1

Когда я создаю свой PreferenceFragment, все предпочтения в категории предпочтений имеют отступ.Почему предпочтения в Android PreferenceFragment отступают?

Когда я делаю это в новом проекте с настройками по умолчанию (просто Activity и PreferenceFragment), предпочтения отображаются просто отлично (без отступов).

public class SettingsFragment extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.fragment_settings); 
    } 

} 

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory android:title="Game Setup"> 

     <CheckBoxPreference 
      android:key="checkbox_randomize_opponents" 
      android:title="Randomize Opponents" 
      android:summary="Randomize opponents after round 1" /> 

    </PreferenceCategory> 
</PreferenceScreen> 
+2

Что вы подразумеваете под «меньшим приложением»? – ataulm

+0

Вы пробовали отлаживать свой пользовательский интерфейс, используя средство просмотра иерархии? http://developer.android.com/tools/debugging/debugging-ui.html#HierarchyViewer –

+0

Я имею в виду приложение с только активностью, фрагментом и фрагментом предпочтений. Давайте попробуем это сейчас, Даниэль, впервые используя Hierarchy Viewer, спасибо за подсказку. – VernonG

ответ

3

По умолчанию предпочтения не имеют иконки. Иконки являются чертежами, и когда вы указываете один, используя атрибут android:icon, фрагмент предпочтения будет отображать то, что вы когда-либо устанавливали.

android:color/transparent является годным для использования. Устанавливая это как android:icon, кроме того, что фрагмент предпочтения имеет фиксированный размер для значков, скажет фрагменту, чтобы показать значок. В этом случае это прозрачный квадрат фиксированных размеров.

Попробуйте изменить его на @android:color/black, а вместо «отступа» вы увидите черный квадрат с фиксированными размерами.

Если вы не хотите значка, вы можете либо установить атрибут значка на android:icon="@null", либо просто полностью удалить атрибут (по умолчанию нет значка).

+0

Спасибо, ataulm. Причина, по которой у меня была установленная прозрачность, заключалась в том, что все мое приложение использовало тему, и я хотел удалить значок из панели действий. Вместо этого я нашел подходящий способ удалить значок из панели действий, не используя мою основную apptheme. Еще раз спасибо! – VernonG

+0

нет беспокойство. Для других, посещая это, подходящим способом является тема для конкретной деятельности, для которой вы хотите переопределить стили. – ataulm