Android:创建自定义支持v7首选项不能按预期工作

时间:2017-06-22 05:36:01

标签: android android-support-library android-custom-view android-preferences android-preference-v14

我使用support library preference-v7为自定义Android偏好设置了示例演示应用程序。

代码: https://github.com/saurabhkpatel/Android-Custom-Preference-Sample

我在这里遇到两个问题:

  1. 在这个演示应用程序中,我有三种不同类型的首选项。一个是ListPreference,第二个是我创建的Custom Preference,最后一个是SwitchPreferenceCompat。如果我将Custom Preference置于这两个首选项类别之间,那么它就无法正常工作。请查看此附加的屏幕截图。您可以看到缺少第三个SwitchPreferenceCompat

  2. 即使我可以看到来自自定义布局文件的搜索栏两次,但我在那里只有一个搜索栏。

  3. 如果我最后放SampleCustomPreference,一切正常。

    任何想法,为什么会发生这种行为?

    感谢您的时间。

    意想不到 enter image description here

    预期

    enter image description here

1 个答案:

答案 0 :(得分:1)

布局文件layout_pref.xml存在问题。父布局的高度应该是换行内容与父级不匹配。更正了xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@android:id/widget_frame"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical" >

    <TextView
        android:id="@android:id/title"
        style="@android:style/TextAppearance.DeviceDefault.SearchResult.Title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="C Title" />

    <TextView
        android:id="@android:id/summary"
        style="@android:style/TextAppearance.DeviceDefault.SearchResult.Subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="C Summary" />

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>