作为标题,我的PreferenceFragment与我的工具栏重叠.我已经尝试过不同的解决方案,但问题仍然存在.希望在任何帮助.这是我的代码.
活动:
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; public class MyActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); // display the fragment as the main content getFragmentManager().beginTransaction().replace(android.R.id.content,new SettingsFragment()).commit(); } }
活动XML(activity_settings.xml):
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mypackage.MyActivity"> <include layout="@layout/app_bar" /> <FrameLayout android:id="@+id/pref_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/app_bar"/> </RelativeLayout>
片段(SettingsFragment.java):
import android.preference.PreferenceFragment; import android.os.Bundle; public class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromresource(R.xml.pref_settings); } }
片段XML(pref_settings.xml):
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="pref_checkBox" android:title="Title" android:summary="Summary" android:defaultValue="false"/> </PreferenceScreen>
工具栏(app_bar.xml):
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/app_bar" android:background="@color/primaryColor" android:elevation="3dp" app:theme="@style/ThemeOverlay.AppCompat.Dark" />
解决方法
改变这个:
getFragmentManager().beginTransaction().replace(android.R.id.content,new SettingsFragment()).commit();
至:
getFragmentManager().beginTransaction().replace(R.id.pref_content,new SettingsFragment()).commit();