Pracuję nad własną aplikacją na Androida i doszedłem do punktu, w którym mam trzy różne Aktywności: aktywność A, aktywność B i aktywność C. Chcę teraz utworzyć szufladę nawigacji aby nawigować między nimi. Przeczytałem samouczek na stronie dla programistów Androida, ale skupili się tylko na Fragmentach. W jaki sposób profesjonalne aplikacje dla systemu Android są tworzone tylko z jednym działaniem, a wszystkie inne ekrany są tworzone przy użyciu fragmentów? Jeśli nie, to dlaczego nie udokumentowano, w jaki sposób zaimplementować korygowanie szuflady nawigacji za pomocą działań? Dziękujemy za pomoc.Szuflada nawigacji na Androida zaimplementowana z działaniami
Odpowiedz
Należy utworzyć Base activity
, który wykonuje wszystkie typowe rzeczy: Drawer navigation
. Nazwę tę bazę Activity
jako DrawerActivity
, a wszystkie inne Activity
powinny rozszerzyć ten DrawerActivity
. Tak więc wszystkie Activity
będą miały jedno wystąpienie Drawer Layout
.
utworzyć wspólny układ z DrawerLayout
i umieścić FrameLayout
i ListView
jako dziecko
<android.support.v4.widget.DrawerLayout>
<FrameLayout
android:id="@+id/activity_frame”/>
<ListView
android:id="@+id/left_drawer”/>
</android.support.v4.widget.DrawerLayout>
teraz ustawić ten układ w onCreate()
na DrawerActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawer_layout);
// do other stuff to initialize drawer layout, add list items
………
……….
// add a listener to the drawer list view
mLeftDrawerList.setOnItemClickListener(new DrawerItemClickListener());
}
Dodaj artykuł kliknij słuchacza
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
switch (position) {
case 0: {
Intent intent = new Intent(DrawerActivity.this, YourActivity.class);
startActivity(intent);
break;
}
default:
break;
}
mDrawerLayout.closeDrawer(mLeftDrawerList);
}
}
Wreszcie, wszystkie inne aktywności przedłużyć ten DrawerActivity
public class MainActivity extends DrawerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// don’t set any content view here, since its already set in DrawerActivity
FrameLayout frameLayout = (FrameLayout)findViewById(R.id.activity_frame);
// inflate the custom activity layout
LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View activityView = layoutInflater.inflate(R.layout.activity_main, null,false);
// add the custom layout of this activity to frame layout.
frameLayout.addView(activityView);
// now you can do all your other stuffs
}
}
Można zobaczyć pełną źródło tutaj https://gist.github.com/libinbensin/613dea436302d3015563
Podaj pełny przykład działania, które rozszerza działanie programu DrawerActivity. Nadmuchałem swój układ i dodałem go jako widok podrzędny układu ramki. Ale to nie działa. Po prostu potrzebuję (// dodaj niestandardowy układ tego działania do układu klatek.), Jak to zrobić poprawnie. – ayon
Zobacz moją zaktualizowaną odpowiedź. Musisz "nadmuchać" swój układ "Activity" i dodać go jako dziecko do 'FrameLayout'. Daj mi znać, jeśli nadal widzisz jakiś problem – Libin
Ahh ... Zrobiłem dokładnie ten sam kod, ale ustawiłem frameLayout jako parametr ViewGroup dla nadmuchania układu. Prawdopodobnie z tego powodu moja aplikacja zdaje się wpadać w nieskończoną pętlę. Spróbuję, jeśli to zadziała, będzie to bardzo pomocne. Dziękuję bardzo za pomoc. – ayon
- 1. Android Studio 1.4 szuflada nawigacji
- 2. Szuflada nawigacji na Androida (działania wywołujące) z AbstractMainActivity
- 3. Szuflada nawigacji Android na kartach
- 4. Szuflada nawigacji OnItemClickListener
- 5. Szuflada nawigacji - wyłączanie przesuwania
- 6. zamknij Szuflada nawigacji bez animacji
- 7. Android: szuflada nawigacji bez xml
- 8. Szuflada nawigacji wiele kontenerów i najlepsza praktyka
- 9. szuflada nawigacji ukryj klawiaturę, gdy onDrawerOpened
- 10. Szuflada nawigacji: dodaj nagłówki w widoku listy
- 11. Składana lista Pozycja w nawigacji Szuflada
- 12. Implementowanie tabletu Gmail, takiego jak szuflada nawigacji,
- 13. Przełącznik szuflady nawigacji na Androida
- 14. Nowa szuflada nawigacji - jak korzystać z tytułów i liczników?
- 15. Nowa oficjalna ikona szuflady nawigacji na Androida
- 16. Szuflada nawigacji zostanie zamknięta, nawet jeśli nadpisano onBackPressed()
- 17. Szuflada nawigacji Material Design Lite (MDL) po prawej stronie
- 18. Szuflada nawigacji z projektowaniem w systemie Android - jak dodać przełącznik w nav xml?
- 19. Usuwanie lewego marginesu z ikony szuflady nawigacji na Androida
- 20. Tabela prawdy z działaniami
- 21. Jak wykryć, że szuflada nawigacji została otwarta za pomocą przesunięcia krawędzi (a nie ikony domowej)?
- 22. USSD na Androida z aplikacji
- 23. Zmiana ikony szuflady nawigacji nawigacji
- 24. Ustaw margines błędu dla szuflady nawigacji na Androida
- 25. Szuflada nawigacji przy użyciu Appcompat v7 - Problemy z? Android: attr Tag
- 26. Pozbycie się przezroczystości szuflady nawigacji na urządzeniach z Androidem
- 27. Android obsługa interakcji z wieloma działaniami
- 28. Funkcja odbicia zaimplementowana z obietnicami
- 29. Wysuwana szuflada wygląda półkolu
- 30. Aplikacja na jedną stronę zaimplementowana z javascript/jQuery
Należy pamiętać, że dokumentacja mówi, że należy użyć tylko szufladę nawigacji w przypadku, gdy mieć więcej niż trzy widoki na najwyższym poziomie. –
OK, aby sprecyzować, w jaki sposób Sklep Google Play został opracowany pod kątem szuflady nawigacji? – koufa
Sprawdź http://www.gadgetsaint.com/android/android-navigation-drawer-toolbar/#.WOBABBJ97fY – ASP