2017-07-25 5 views
0

J'ai mis <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> dans mon style.xml car je veux utiliser une barre d'action personnalisée dans mon activité principale. Donc, mon appcompatpreference ne charge pas la barre d'action. Que puis-je faire pour obtenir une barre d'action de préférence.Obtenir la barre d'action dans appcompatpreference

Voici mon 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

Can » t vous utilisez un 'PreferenceFragment' dans un' AppCompatActivity' normal? Vous aurez probablement besoin de créer votre propre barre d'outils dans un fichier layout et de le définir comme barre d'action de support –

Répondre

0

Créer une mise en page séparée pour la barre d'outils,

<?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" 
    ..... 
    ..... 
    /> 

Maintenant, placez-le dans onPostCreate() du 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

Mais cette barre d'outils chevauche les paramètres –