我有一个简单的应用程序,其中单个页面首选项以片段样式实现。我在Android 4.x(多个版本)的平板电脑上运行。当我打开首选项页面时,操作栏会覆盖最顶层的首选项。我的解决方法是有一个虚拟的第一项,但当然这是愚蠢的。我只是不知道如何保留操作栏并让操作栏下方的首选项开始。我不是为动作栏编程,只是出现了。
的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>
有什么建议吗?
答案 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.4
和5.0
手机上发生这种情况。尝试上述解决方案无济于事。什么工作将我的片段托管活动改为LinearLayout
,解决了这个问题。