Sto scrivendo un'app Android per sfruttare la funzionalità Layout cassetto. Voglio avere la possibilità di utilizzare Disposizione dei cassetti come strumento di navigazione disponibile in tutta l'app. Per utilizzare il layout cassetto, io sto usando il seguente nei miei file di layout XML di attività:Come avvolgere DrawerLayout attorno a PreferenceActivity in un'app Android?
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView android:id="@+id/navigational_drawer"
android:layout_width="220dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#FFFFFF"/>
</android.support.v4.widget.DrawerLayout>
Tuttavia, sto avendo molte difficoltà che avvolgono intorno alla DrawerLayout PreferenceActivity. PreferenceActivity è un tipo speciale di attività che vorrei preservare perché mi aiuta a mantenere l'aspetto e le preferenze delle preferenze Android nella mia app; detto questo, usa le chiamate addPreferencesFromResource() per caricare le preferenze e non usa le chiamate addContentView() per caricare file XML; le risorse di preferenza contengono in genere i tag di PreferenceScreen che non desiderano essere inclusi in DrawerLayouts.
Qualcuno ha dovuto occuparsi di questo problema e come lo ha risolto? Se hai PreferenceActivity nella tua app per Android e hai DrawerLayout disponibile sulla stessa attività, per favore condividi come hai fatto. Qualsiasi aiuto sarebbe molto apprezzato.
Modificato: Se cambio
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
a
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
quindi l'applicazione non va in crash quando PreferenceActivity viene caricato (perché l'ID "lista" corrisponde a ciò che la preferenza attività prevede di trova); tuttavia, il cassetto non viene visualizzato. È quasi come se tutto quello che si trova sotto l'elenco di ListView venga ignorato.
Voglio anche conservare le mie attività esistenti e aggiungere il cassetto dinamicamente. Non a causa di PreferenceActivity, ma poiché ci sono quasi 100 attività e la loro modifica in frammenti richiederebbe un po 'di tempo. Sono stato in grado di farlo con HorizontalScrollView, ma sento che DrawerLayout sarebbe molto più pulito. –