Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

push activity on the right when open drawer

I have implemented drawerlayout which slides from the right but it does not shift the activity the right like facebook does (See below image). How do I push the current activity to the right side when user taps on opendrawer button like in the above image.Currently it appears on top of activity and drops shadow.I really appreciate any help . Thanks in advance.

enter image description here

like image 765
jason Avatar asked Oct 24 '13 22:10

jason


People also ask

Can we use activity in navigation drawer?

As for how to switch between activities via the navigation drawer, you can just set up new intents within your selectItem() method: private void selectItem(int position) { // Handle Navigation Options Intent intent; switch (position) { case 0: intent = new Intent(currentActivity, NewActivity.

How do I create a navigation drawer activity?

To add a navigation drawer, first declare a DrawerLayout as the root view. Inside the DrawerLayout , add a layout for the main UI content and another view that contains the contents of the navigation drawer.


1 Answers

Although there is no default way to slide the activity along with navigation drawer we can do it through code. As suggested in the above answer by mick88 following is the code snippet from my project.

my profile.xml file

<android.support.v4.widget.DrawerLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:facebook="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/drawer_layout"     android:layout_width="match_parent"     android:layout_height="match_parent" >      <!-- Framelayout to display Fragments -->      <RelativeLayout         android:id="@+id/mainView"         android:layout_width="match_parent"         android:layout_height="match_parent" >       </RelativeLayout>      <!-- Listview to display slider menu -->      <RelativeLayout         android:id="@+id/drawerView"         android:layout_width="240dp"         android:layout_height="wrap_content"         android:layout_gravity="start" >          <ListView             android:id="@+id/list_slidermenu"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:background="@color/list_background"             android:divider="@color/list_divider"             android:dividerHeight="1dp" />     </RelativeLayout> </android.support.v4.widget.DrawerLayout> 

now in Activity

public class ProfileActivity extends ActionBarActivity {     ....     private DrawerLayout mDrawerLayout;     private ActionBarDrawerToggle mDrawerToggle;      RelativeLayout drawerView;     RelativeLayout mainView;     ....      @Override     protected void onCreate(Bundle savedInstanceState) {           ............. //         .............//         drawerView = (RelativeLayout) findViewById(R.id.drawerView);         mainView = (RelativeLayout) findViewById(R.id.mainView);          mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.app_name, R.string.app_name) {             public void onDrawerClosed(View view) {                 supportInvalidateOptionsMenu();             }              public void onDrawerOpened(View drawerView) {                 supportInvalidateOptionsMenu();             }              @Override             public void onDrawerSlide(View drawerView, float slideOffset) {                 super.onDrawerSlide(drawerView, slideOffset);                 mainView.setTranslationX(slideOffset * drawerView.getWidth());                 mDrawerLayout.bringChildToFront(drawerView);                 mDrawerLayout.requestLayout();             }         };         mDrawerLayout.setDrawerListener(mDrawerToggle);      }  } 
like image 69
Suveer Jacob Avatar answered Sep 29 '22 10:09

Suveer Jacob