使用设置片段,操作栏覆盖了首选项

时间:2013-05-15 20:19:15

标签: android settings preferences

我有一个简单的应用程序,其中单个页面首选项以片段样式实现。我在Android 4.x(多个版本)的平板电脑上运行。当我打开首选项页面时,操作栏会覆盖最顶层的首选项。我的解决方法是有一个虚拟的第一项,但当然这是愚蠢的。我只是不知道如何保留操作栏并让操作栏下方的首选项开始。我不是为动作栏编程,只是出现了。

Screen shot of problem

的preferences.xml:

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

    <CheckBoxPreference
        android:key="pref_AdaptToRoomXXX"
        android:title="This is the dummy item as a spacer" />

    <CheckBoxPreference
        android:key         ="@string/pref_TimeFormat"
        android:title       ="@string/action_setTimeFormat"
        android:summary     ="@string/action_setTimeFormat"
        />

    <ListPreference 
        android:key="@string/pref_DateFormat"
        android:title="@string/action_setDateFormat"
        android:summary="@string/action_setDateFormat"
        android:dialogTitle="@string/action_setDateFormat"
        android:entries="@array/action_setDateFormat_options"
        android:entryValues="@array/action_setDateFormat_values"
        android:defaultValue="@string/action_setDateFormat_default" />

    <ListPreference 
        android:key="@string/pref_TextColor"
        android:title="@string/action_setTextColor"
        android:summary="@string/action_setTextColor"
        android:dialogTitle="@string/action_setTextColor"
        android:entries="@array/action_setTextColor_colors"
        android:entryValues="@array/action_setTextColor_values"
        android:defaultValue="@string/action_setTextColor_default" />

    <CheckBoxPreference
        android:key="@string/pref_DimOnBattery"
        android:title="@string/action_setDimOnBattery"
        android:defaultValue="true" />

</PreferenceScreen>

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

通常,您的ActionBar不应覆盖内容。检查您是否为您的窗口设置了Window.FEATURE_ACTION_BAR_OVERLAY,即...

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

...在您的活动内部被调用。如果是这样 - 将其删除。

希望这有帮助......干杯!

答案 1 :(得分:1)

我的解决方案是将app:layout_behavior属性添加到布局文件中<FrameLayout />的{​​{1}}容器中。

PreferenceFragment

答案 2 :(得分:0)

我的问题通过将这两个attrs添加到styles.xml

来解决
<!-- Make setting content not covering by actionbar -->
<item name="android:fitsSystemWindows">true</item>
<item name="android:clipToPadding">true</item>

答案 3 :(得分:0)

如果有人遇到此问题:我使用设计库应用栏在4.45.0手机上发生这种情况。尝试上述解决方案无济于事。什么工作将我的片段托管活动改为LinearLayout,解决了这个问题。