2016-04-30 17 views
2

私はサポート環境設定ライブラリを使用しており、すべての画面に空白を入れてから、それに含まれる環境設定を表示します。私はPreferenceCategoryスタイル属性 - layout_heightをwrap_contentに変更しようとしましたが、うまくいきませんでした。Android - support.v7.PreferenceCategory画面全体を入力

私の好みのスタイル:

<style name="PreferenceThemeOverlay"> 
    <item name="preferenceScreenStyle">@style/Preference.PreferenceScreen</item> 
    <item name="preferenceFragmentStyle">@style/PreferenceFragment</item> 
    <item name="preferenceCategoryStyle">@style/Preference.Category</item> 
    <item name="preferenceStyle">@style/Preference</item> 
    <item name="preferenceInformationStyle">@style/Preference.Information</item> 
    <item name="checkBoxPreferenceStyle">@style/Preference.CheckBoxPreference</item> 
    <item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item> 
    <item name="dialogPreferenceStyle">@style/Preference.DialogPreference</item> 
    <item name="editTextPreferenceStyle">@style/Preference.DialogPreference.EditTextPreference</item> 
    <item name="preferenceFragmentListStyle">@style/PreferenceFragmentList</item> 
    <item name="android:subtitleTextStyle">@color/dark_gray</item> 
</style> 

マイprefernceのXML:

<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent"> 
<android.support.v7.preference.PreferenceCategory 
    android:key="pref_user_settings" 
    android:title="@string/pref_group_user"> 
    <android.support.v7.preference.ListPreference 
     android:defaultValue="Publisher" 
     android:entries="@array/pref_user_types" 
     android:entryValues="@array/pref_user_types" 
     android:key="pref_user_type" 
     android:title="@string/pref_title_user_type" /> 
</android.support.v7.preference.PreferenceCategory> 

これは、それがどのように見えるかです: enter image description here enter image description here

+0

'/ res/xml'には'/res/layout'ではなく、 'PreferenceFragment'や' PreferenceActivity'の中で設定が必要です。例については、[docs](http://developer.android.com/reference/android/preference/PreferenceFragment.html)を参照してください。 – reVerse

+0

'/ res/xml'と' PreferenceFragment'の中で定義されています。 –

+0

私はまったく同じ問題を抱えています。私は成功せずにそれを修正しようとしています。 –

答えて

1

私はそれを解決方法はプリファレンスカテゴリファイルをカスタマイズします。

ソリューション:次に、あなたのスタイルファイルに以下を追加

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/gray" 
    android:paddingTop="8dp" 
    android:id="@android:id/title" /> 

がcustom_preference_categoryと呼ばれる新しいレイアウトのXMLファイルを作成し、その後

<style name="Preference.Category"> 
    <item name="android:layout">@layout/custom_preference_category</item> 
    <item name="android:shouldDisableView">false</item> 
    <item name="android:selectable">false</item> 
</style> 

<style name="PreferenceThemeOverlay"> 
    <item name="preferenceScreenStyle">@style/Preference.PreferenceScreen</item> 
    <item name="preferenceFragmentStyle">@style/PreferenceFragment</item> 
    <item name="preferenceCategoryStyle">@style/Preference.Category</item> 
    <item name="preferenceStyle">@style/Preference</item> 
    <item name="preferenceInformationStyle">@style/Preference.Information</item> 
    <item name="checkBoxPreferenceStyle">@style/Preference.CheckBoxPreference</item> 
    <item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item> 
    <item name="dialogPreferenceStyle">@style/Preference.DialogPreference</item> 
    <item name="editTextPreferenceStyle">@style/Preference.DialogPreference.EditTextPreference 
    </item> 
    <item name="preferenceFragmentListStyle">@style/PreferenceFragmentList</item> 
</style> 

そして、あなたにこのスタイルを使用しますメインアプリテーマ:

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item> 

私はこれまでに多くのことをしていましたので、これがすべて完了したかどうかは分かりません。何か不足している場合はフィードバックをお願いします。

関連する問題