Using below code you can create a android DrawerLayout, a FrameLayout and Linearlayout. The Linerlayout is divided in three linerlayout for using image and text. In this Navigation Drawer when I will click navigation menu the navigation menu will open without hiding backgarund image. Backgraund imgae will sliding to right side and navigation menu will esily openup on the device. Below example will clearly describe how to make Navigation Drawer .
Step(1)-Create HomeScreenActivity -
public class HomeScreenActivity extends AppCompatActivity {
private LinearLayout llContactUs, llLogout, llOfflineMode;
private FrameLayout frameLayout;
private ActionBarDrawerToggle drawerToggle;
private DrawerLayout drawerLayout;
private LinearLayout left_drawer;
private SearchView mSearchView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_screen);
frameLayout = (FrameLayout) findViewById(R.id.content_frame);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
llContactUs = (LinearLayout) findViewById(R.id.llContactUs);
llLogout = (LinearLayout) findViewById(R.id.llLogout);
left_drawer = (LinearLayout) findViewById(R.id.left_drawer);
llOfflineMode = (LinearLayout) findViewById(R.id.llOfflineMode);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.draweropen, R.string.drawerclose) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
frameLayout.setTranslationX(slideOffset * drawerView.getWidth());
drawerLayout.bringChildToFront(drawerView);
drawerLayout.requestLayout();
}
};
drawerToggle.setDrawerIndicatorEnabled(true);
drawerLayout.setDrawerListener(drawerToggle);
llOfflineMode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(HomeScreenActivity.this, OfflinePublicationListActivity.class);
intent.putExtra("offline",true);
startActivity(intent);
}
});
llContactUs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(HomeScreenActivity.this, ContactusActivity.class);
startActivity(intent);
}
});
llLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferenceManager preferenceManager = SharedPreferenceManager.getInstance();
preferenceManager.clearCredentials(HomeScreenActivity.this);
preferenceManager.setLoginCheck(HomeScreenActivity.this, false);
Intent intent = new Intent(HomeScreenActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}
});
addFirstFragment();
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
drawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggles
drawerToggle.onConfigurationChanged(newConfig);
}
/**
@Function Name : addFirstFragment
@Author Name : Mr. Sombir Singh Bisht
@Date : Aug, 25 2015
@Param : NA
@Purpose : To add fragment to the Home Screen Activity.
*/
private void addFirstFragment() {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
SelectRegionFragment selectRegionFragment = new SelectRegionFragment();
fragmentTransaction.add(R.id.content_frame, selectRegionFragment);
fragmentTransaction.commit();
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_home_screen, menu);
mSearchView=(SearchView)menu.findItem(R.id.search).getActionView();
initializeSearchView();
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
private void initializeSearchView(){
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
System.out.println("This is the text to submit"+query);
searchText(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
private void searchText(String query){
Intent intent = new Intent(this, PublicationsListActivity.class);
intent.putExtra("query",query);
startActivity(intent);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Pass the event to ActionBarDrawerToggle, if it returns
// true, then it has handled the app icon touch event
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle your other action bar items...
return super.onOptionsItemSelected(item);
}
}
Step(2)-HomeScreenActivity layout-
<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">
<!-- Frame Layout -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!-- Navigation drawer -->
<LinearLayout
android:id="@+id/left_drawer"
android:layout_width="@dimen/drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/left_drawer_backgroundcolor"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llMyFavourites"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ivmargin_bottom"
android:src="@drawable/markfav"
android:layout_gravity="center_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvMyFavourites_text"
android:textSize="@dimen/tvtext_size"
android:textColor="@color/tvtext_color"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:id="@+id/llOfflineMode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:textAlignment="center"
android:layout_marginTop="@dimen/addtoOffline_margintop">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ivmargin_bottom"
android:src="@drawable/mode"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvOfflineMode_text"
android:textSize="@dimen/tvtext_size"
android:textColor="@color/tvtext_color"
android:textAlignment="center"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:id="@+id/llContactUs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="30dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ivmargin_bottom"
android:src="@drawable/contact"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvContactUs_text"
android:textSize="@dimen/tvtext_size"
android:textColor="@color/tvtext_color"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:id="@+id/llMyAccount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ivmargin_bottom"
android:src="@drawable/myaccount"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvMyAccount_text"
android:textSize="@dimen/tvtext_size"
android:textColor="@color/tvtext_color"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:id="@+id/llLogout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="30dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ivmargin_bottom"
android:src="@drawable/logout"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvLogout_text"
android:textSize="@dimen/tvtext_size"
android:textColor="@color/tvtext_color"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
0 Comment(s)