Hallo sahabat, pada peluang kali ini kita hendak menekuni salah satu perihal yang biasa dalam aplikasi android, lebih persisnya Navigation Drawer. Cara Membuat Navigation Drawer Dan Menghubungkan Intent Android Studio. Jadi dalam ilustrasi kali ini hendak menekuni gimana memakai Navigation Drawer dari template android yang telah diadakan.
Bisa jadi sebagian dari sahabat telah mengenali apa itu Navigation Drawer pada android, hendak namun bila terdapat sebagian dari sahabat yang sedang bimbang menerapkannya dengan sebagian Fragment, hingga dari itu, janganlah takut, di bimbingan kali hendak menghilangkan seluruh kebimbangan itu. Cara Membuat Navigation Drawer Dan Menghubungkan Intent Android Studio. Jadi, langsung saja ayo kita mulai membuat Android Navigation Drawer.
Terdapat 2 tata cara buat meningkatkan fitur Navigation Drawer pada aplikasi android, ialah dengan metode:
1. Membuat Project terkini.
2. Meningkatkan Navigation Drawer Activity.
1. Membuat project baru
Daftar isi
Pertama- tama, membuat project terkini.
Untuk project terkini. Aku berikan julukan Sederhana Navigation Drawer.
Berikutnya, bila sahabat bertanya buat memilah activity mana yang hendak dipakai dari template, hingga seleksi Navigation Drawer Activity.
2. Meningkatkan Navigation Drawer Activity
Berikutnya, bila mau meningkatkan Navigation Drawer Activity ke- project yang telah terdapat atau terbuat kemudian klik kanan dipackage-
new-
activity-
Navigation Drawer Activity.
Kala telah berakhir, selanjutnya merupakan sebagian class serta file xml atau layout yang otomatis dibuat.
a. Fragment Class
b. File XML
Kala project telah berakhir terbuat, Navigation Drawer telah sedia, serta saat ini aplikasi telah sedia dijalani.
Gimana? lumayan gampang kan? betul, itu lumayan gampang. Saat ini kita hendak mangulas sebagian file yang dibuat otomatis, saat sebelum lanjut berlatih membiasakan atau customizing menu memakai serta meningkatkan layar dengan fragment.
Activity
Activity ialah salah satu bagian yang terdapat di Android Sanggar yang berperan buat menunjukkan user interface( UI) dari aplikasi yang hendak terbuat, umumnya diletakkan pada“ setcontentview”. Bukan cuma menunjukkan UI, activity pula dipakai buat melaksanakan bermacam aktivitas yang dibutuhkan di dalam aplikasi itu semacam beralih dari satu bentuk ke bentuk yang lain, melaksanakan program lain, serta sedang banyak lagi yang bisa dicoba di dalam suatu activity.
Fragment
Fragment ialah salah satu bagian pada Android Sanggar dengan guna yang nyaris serupa semacam activity namun mempunyai“ lifecycle” yang berlainan. Fragment ialah bagian dari suatu activity yang mana suatu fragment tidak hendak terdapat apabila tidak terdapat suatu activity sebab fragment menginginkan akses dari activity buat bisa dijalani.
View Model
ViewModel merupakan suatu kategori yang didesain buat menaruh serta mengatur informasi yang umumnya berkaitan dengan UI. Alhasil informasi itu bisa dipakai kembali dikala terjalin pergantian bentuk.
– Guna dari View Model
Sering- kali, terjalin sebagian pergantian bentuk pada device yang kita maanfaatkan, tidak tahu itu dikala perputaran layar, timbulnya virtual keyboard, serta lain- lain. Dikala pergantian itu terjalin, android hendak melaksanakan restart kepada activity yang lagi berjalan.
Ilustrasi sederhananya, dikala aplikasi kita lagi melaksanakan request informasi ke server kala activity diakses, kala informasi telah diperlihatkan, seketika user melaksanakan perputaran layar, hingga activity hendak melaksanakan restart serta melaksanakan request informasi dari dini, yang sepatutnya tidak butuh dicoba lagi.
Buat seperti itu ViewModel terbuat, ViewModel bisa menaruh serta mengembalikan informasi yang terikat dengan sesuatu activity ataupun fragment alhasil aplikasi kita bisa memakai informasi yang tadinya telah dipunyai.
Layout
Layout ialah sesuatu bentuk aturan posisi di Android buat menata penempatan bacaan, lukisan, atau bagian yang lain alhasil bentuk pada aplikasi yang terbuat nampak apik serta aman buat diamati oleh konsumen.
Menu
Menu merupakan bagian user interface yang lazim dalam banyak jenis aplikasi. Buat sediakan pengalaman konsumen. Kala kita mau membuat aksi serta alternatif lain dalam kegiatan pada konsumen. hingga dapat memakai API Menu buat menyajikannya.
3. Memastikan berapa banyak bentuk atau layout yang mau diperlihatkan pada menu.
Saat sebelum meneruskan, pada bimbingan kali ini aku hendak memastikan berapa bentuk menu yang hendak diperlihatkan pada Navigation Drawer. Kita sepakati membuat 4 menu drawer ialah, Menu1, Menu 2, Share serta Batang kayu out.
Buat 3 menu diawal semacam Menu1, Menu2, serta share, hendak terbuat bentuk atau layoutnya serta buat menu logout cuma hendak menunjukkan suatu toast saja.
Kemudian, lenyap sebagian class serta layout yang lain, dan mengubah julukan pada layout serta class yang hendak dipakai. Sampai bentuk class serta layout kita hendak nampak semacam selanjutnya.
Serta pula terdapat peluang kali ini, kita tidak hendak memakai view bentuk, hingga dari itu, lenyap viewmodel- nya.
Alhasil bentuk class diprojek sehabis viewmodel dihapus hendak terllihat semacam selanjutnya.
Berikutnya, jalani sedikit pergantian buat codingan dari class fragment serta layoutnya.
Selanjutnya merupakan codingan dari sebagian class yang sedikit dirubah.
Menu1Fragment.
public class Menu1Fragment extends Fragment
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup kontainer, Bundle savedInstanceState)
View root= inflater. inflate( R. layout. fragment_menu_1, kontainer, false);
akhir TextView textView= root. findViewById( R. id. text_home);
return root;
Menu2Fragment.
public class Menu2Fragment extends Fragment
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup kontainer, Bundle savedInstanceState)
View root= inflater. inflate( R. layout. fragment_menu_2, kontainer, false);
akhir TextView textView= root. findViewById( R. id. text_gallery);
return root;
ShareFragment.
public class ShareFragment extends Fragment
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup kontainer, Bundle savedInstanceState)
View root= inflater. inflate( R. layout. fragment_share, kontainer, false);
akhir TextView textView= root. findViewById( R. id. text_share);
return root;
Serta selanjutnya merupakan codingan dari sebagian layout yang sedikit dirubah.
fragment_menu_1. xml
<? xml version=” 1. 0″ encoding=” utf- 8″?
<androidx. constraintlayout. widget. ConstraintLayout xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: app=” http: atau atau schemas. android. com atau apk atau res- auto”
android: layout_width=” match_parent”
android: layout_height=” match_parent”
<TextView
android: id=”@+id atau text_home”
android: layout_width=” match_parent”
android: layout_height=” wrap_content”
android: layout_marginStart=” 8dp”
android: layout_marginTop=” 8dp”
android: layout_marginEnd=” 8dp”
android: textAlignment=” center”
android: textSize=” 20sp”
app: layout_constraintEnd_toEndOf=” parent”
app: layout_constraintStart_toStartOf=” parent”
app: layout_constraintTop_toTopOf=” parent”
android: text=” Ini Menu 1″ atau
< atau androidx. constraintlayout. widget. ConstraintLayout
fragment_menu_2. xml
<? xml version=” 1. 0″ encoding=” utf- 8″?
<androidx. constraintlayout. widget. ConstraintLayout xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: app=” http: atau atau schemas. android. com atau apk atau res- auto”
android: layout_width=” match_parent”
android: layout_height=” match_parent”
<TextView
android: id=”@+id atau text_gallery”
android: layout_width=” match_parent”
android: layout_height=” wrap_content”
android: layout_marginStart=” 8dp”
android: layout_marginTop=” 8dp”
android: layout_marginEnd=” 8dp”
android: textAlignment=” center”
android: textSize=” 20sp”
app: layout_constraintEnd_toEndOf=” parent”
app: layout_constraintStart_toStartOf=” parent”
app: layout_constraintTop_toTopOf=” parent”
android: text=” Ini Menu 2″ atau
< atau androidx. constraintlayout. widget. ConstraintLayout
fragment_share. xml
<? xml version=” 1. 0″ encoding=” utf- 8″?
<androidx. constraintlayout. widget. ConstraintLayout xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: app=” http: atau atau schemas. android. com atau apk atau res- auto”
android: layout_width=” match_parent”
android: layout_height=” match_parent”
<TextView
android: id=”@+id atau text_share”
android: layout_width=” match_parent”
android: layout_height=” wrap_content”
android: layout_marginStart=” 8dp”
android: layout_marginTop=” 8dp”
android: layout_marginEnd=” 8dp”
android: textAlignment=” center”
android: textSize=” 20sp”
app: layout_constraintEnd_toEndOf=” parent”
app: layout_constraintStart_toStartOf=” parent”
app: layout_constraintTop_toTopOf=” parent”
android: text=” Ini Share” atau
< atau androidx. constraintlayout. widget. ConstraintLayout
4. Membiasakan atau Customizing Navigation Drawer
1. Membiasakan atau Customizing Navigation Drawer Menu
a. Berikutnya, kita hendak mengganti menu yang hendak diperlihatkan pada Navigation Drawer. Buat mengganti menu drawer cuma butuh membuka activity_main_drawer. xml didalam berkas menu. Kali ini, kita hendak menghilangkan sebagian menu serta cuma hendak mempunyai 4 menu semacam yang sudah didetetapkan pada uraian tadinya( sahabat dapat meningkatkan sebesar yang sahabat mau).
<? xml version=” 1. 0″ encoding=” utf- 8″?
<menu xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: tools=” http: atau atau schemas. android. com atau tools”
tools: showIn=” navigation_view”
<group android: checkableBehavior=” single”
<item
android: id=”@+id atau nav_menu1″
android: icon=”@drawable atau ic_menu_camera”
android: title=” Menu 1″ atau
<item
android: id=”@+id atau nav_menu2″
android: icon=”@drawable atau ic_menu_gallery”
android: title=” Menu 2″ atau
< atau group
<item android: title=” Yang lain”
<menu
<item
android: id=”@+id atau nav_share”
android: icon=”@drawable atau ic_menu_share”
android: title=”@string atau menu_share” atau
<item
android: id=”@+id atau nav_log_out”
android: icon=”@android: drawable atau ic_lock_power_off”
android: title=” Batang kayu Out” atau
< atau menu
< atau item
< atau menu
b. Kala mengganti bentuk menu, hingga kita pula wajib mengubah file navigation buat membiasakan navigationnya.
* note, id yang diinput pada Drawer Menu serta navigation wajib serupa.
Buat mengganti navigation kita cuma butuh membuka mobile_navigation. xml didalam navigation.
<? xml version=” 1. 0″ encoding=” utf- 8″?
<navigation xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: app=” http: atau atau schemas. android. com atau apk atau res- auto”
xmlns: tools=” http: atau atau schemas. android. com atau tools”
android: id=”@+id atau mobile_navigation”
app: startDestination=”@+id atau nav_menu1″
<fragment
android: id=”@+id atau nav_menu1″
android: name=” com. mazriela. simplenavigationdrawer. ui. menu_1. Menu1Fragment”
android: label=” Menu 1″
tools: layout=”@layout atau fragment_menu_1″ atau
<fragment
android: id=”@+id atau nav_menu2″
android: name=” com. mazriela. simplenavigationdrawer. ui. menu_2. Menu2Fragment”
android: label=” Menu 2″
tools: layout=”@layout atau fragment_menu_2″ atau
<fragment
android: id=”@+id atau nav_share”
android: name=” com. mazriela. simplenavigationdrawer. ui. share. ShareFragment”
android: label=” Share”
tools: layout=”@layout atau fragment_share” atau
< atau navigation
Selanjutya ganti class MainActivity buat membiasakan dengan menu drawer serta membagikan action buat menampikan toast.
MainActivity.
package com. mazriela. simplenavigationdrawer;
import android. app. Activity;
import android. os. Bundle;
import com. google. android. material. floatingactionbutton. FloatingActionButton;
import com. google. android. material. snackbar. Snackbar;
import android. view. MenuItem;
import android. view. View;
import androidx. core. view. GravityCompat;
import androidx. navigation. NavController;
import androidx. navigation. Navigation;
import androidx. navigation. ui. AppBarConfiguration;
import androidx. navigation. ui. NavigationUI;
import com. google. android. material. navigation. NavigationView;
import androidx. drawerlayout. widget. DrawerLayout;
import androidx. appcompat. app. AppCompatActivity;
import androidx. appcompat. widget. Toolbar;
import android. view. Menu;
import android. widget. Toast;
public class MainActivity extends AppCompatActivity
private AppBarConfiguration mAppBarConfiguration;
@Override
protected void onCreate( Bundle savedInstanceState)
luar biasa. onCreate( savedInstanceState);
setContentView( R. layout. activity_main);
Toolbar toolbar= findViewById( R. id. toolbar);
setSupportActionBar( toolbar);
FloatingActionButton fab= findViewById( R. id. fab);
fab. setOnClickListener( new View. OnClickListener()
@Override
public void onClick( View view)
Snackbar. make( view,” Replace with your own action”, Snackbar. LENGTH_LONG)
. setAction(” Action”, null). show();
);
DrawerLayout drawer= findViewById( R. id. drawer_layout);
NavigationView navigationView= findViewById( R. id. nav_view);
atau atau Passing each menu ID as a set of Ids because each
atau atau menu should be considered as maksimum tingkat destinations.
mAppBarConfiguration= new AppBarConfiguration. Builder(
R. id. nav_menu1,
R. id. nav_menu2,
R. id. nav_share)
. setDrawerLayout( drawer)
. build();
NavController navController= Navigation. findNavController( this, R. id. nav_host_fragment);
NavigationUI. setupActionBarWithNavController( this, navController, mAppBarConfiguration);
NavigationUI. setupWithNavController( navigationView, navController);
MenuItem navLogOutItem= navigationView. getMenu(). findItem( R. id. nav_log_out);
navLogOutItem. setOnMenuItemClickListener( new MenuItem. OnMenuItemClickListener()
@Override
public boolean onMenuItemClick( MenuItem item)
Toast. makeText( MainActivity. this,” Batang kayu Out”, Toast. LENGTH_SHORT). show();
atau atau do as you want with the button click
DrawerLayout drawer= findViewById( R. id. drawer_layout);
drawer. closeDrawer( GravityCompat. Mulai);
return false;
);
@Override
public boolean onCreateOptionsMenu( Menu menu)
atau atau Inflate the menu; this adds items to the action kafe if it is present.
getMenuInflater(). inflate( R. menu. bermain, menu);
return true;
@Override
public boolean onSupportNavigateUp()
NavController navController= Navigation. findNavController( this, R. id. nav_host_fragment);
return NavigationUI. navigateUp( navController, mAppBarConfiguration)
luar biasa. onSupportNavigateUp();
Bila telah, silahkan buat melaksanakan project, bila tidak terdapat error, hingga bentuk dari aplikasi hendak nampak semacam selanjutnya.
5. Membiasakan atau Customizing Header Navigation Drawer.
Buat membiasakan header kita cuma butuh membuka nav_header_main. xml didalam layout serta masukkan code selanjutnya.
<? xml version=” 1. 0″ encoding=” utf- 8″?
<LinearLayout xmlns: android=” http: atau atau schemas. android. com atau apk atau res atau android”
xmlns: app=” http: atau atau schemas. android. com atau apk atau res- auto”
android: layout_width=” match_parent”
android: layout_height=”@dimen atau nav_header_height”
android: background=”@android: color atau holo_blue_dark”
android: gravity=” bottom”
android: orientation=” vertical”
android: paddingLeft=”@dimen atau activity_horizontal_margin”
android: paddingTop=”@dimen atau activity_vertical_margin”
android: paddingRight=”@dimen atau activity_horizontal_margin”
android: paddingBottom=”@dimen atau activity_vertical_margin”
android: theme=”@style atau ThemeOverlay. AppCompat. Dark”
<ImageView
android: id=”@+id atau imageView”
android: layout_width=” wrap_content”
android: layout_height=” wrap_content”
android: contentDescription=”@string atau nav_header_desc”
android: paddingTop=”@dimen atau nav_header_vertical_spacing”
app: srcCompat=”@mipmap atau ic_launcher_round” atau
<TextView
android: layout_width=” match_parent”
android: layout_height=” wrap_content”
android: paddingTop=”@dimen atau nav_header_vertical_spacing”
android: text=” Azriel Akbar”
android: textAppearance=”@style atau TextAppearance. AppCompat. Body1″
android: textColor=”@android: color atau white” atau
<TextView
android: id=”@+id atau textView”
android: layout_width=” wrap_content”
android: layout_height=” wrap_content”
android: text=” azriel@udacoding. com”
android: textColor=”@android: color atau white” atau
< atau LinearLayout
Bila telah, silahkan buat melaksanakan aplikasi.
Yeaayyy!!! kita terkini saja menuntaskan bimbingan membuat aplikasi dengan fitur Navigation Drawer, Gimana sahabat? apakah telah tidak bimbang lagi dengan metode mengimplementasikannya? bila sedang terdapat yang dirasa bimbang, silahkan menanya pada kolom pendapat dibawah, dapat kasihh!!