在appcompatpreference中获取操作栏

问题描述:

我在我的style.xml中设置了<item name="windowNoTitle">true</item> <item name="windowActionBar">false</item>因为我想在我的主要活动中使用自定义操作栏。所以我的appcompatpreference不会加载操作栏。我可以做些什么来优先获得操作栏。在appcompatpreference中获取操作栏

这里是我的SettingsActivity.java

public class SettingsActivity extends AppCompatPreferenceActivity { 

    private static final String TAG = SettingsActivity.class.getSimpleName(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     // load settings fragment 
     getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit(); 
    } 

    public static class MainPreferenceFragment extends PreferenceFragment { 
     @Override 
     public void onCreate(final Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      addPreferencesFromResource(R.xml.pref_main); 


     } 
    } 
+0

灿”的创建工具栏单独的布局,

<?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:id="@+id/toolbar" ..... ..... /> 

现在设置它onPostCreate()你在普通的'AppCompatActivity'中使用'PreferenceFragment'吗?您可能需要在布局文件中创建自己的工具栏并将其设置为支持操作栏 –

的SettingsActivity

@Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 

     LinearLayout rootLayout = (LinearLayout) findViewById(android.R.id.list).getParent().getParent().getParent(); 
     Toolbar toolbar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.toolbar_layout, root, false); 
     rootLayout.addView(toolbar , 0); 
    } 
+0

但是,此工具栏与设置重叠 –