diff --git a/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..2b79b04b3 Binary files /dev/null and b/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png new file mode 100644 index 000000000..2b79b04b3 Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..224cc4ff4 Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png new file mode 100644 index 000000000..b96daaeb6 Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..3797f99c0 Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png new file mode 100644 index 000000000..77de73c5e Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png differ diff --git a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..fa3d853e9 Binary files /dev/null and b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..b96daaeb6 Binary files /dev/null and b/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png new file mode 100644 index 000000000..77de73c5e Binary files /dev/null and b/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png differ diff --git a/samples/Support7Demos/res/layout/drawer_layout.xml b/samples/Support7Demos/res/layout/drawer_layout.xml index f8d22d15a..1249b8b76 100644 --- a/samples/Support7Demos/res/layout/drawer_layout.xml +++ b/samples/Support7Demos/res/layout/drawer_layout.xml @@ -76,7 +76,21 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" - android:background="#ff333333" + android:background="#333333" android:fitsSystemWindows="true"/> + + + diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java index d6548739c..785436455 100644 --- a/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java +++ b/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java @@ -27,10 +27,10 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.FrameLayout; import android.widget.ListView; import android.widget.TextView; import com.example.android.supportv7.R; @@ -77,7 +77,8 @@ import com.example.android.supportv7.Shakespeare; */ public class DrawerLayoutActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; - private ListView mDrawer; + private ListView mStartDrawer; + private FrameLayout mEndDrawer; private TextView mContent; private ActionBarDrawerToggle mDrawerToggle; @@ -90,19 +91,21 @@ public class DrawerLayoutActivity extends AppCompatActivity { setContentView(R.layout.drawer_layout); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - mDrawer = (ListView) findViewById(R.id.start_drawer); + mStartDrawer = (ListView) findViewById(R.id.start_drawer); + mEndDrawer = (FrameLayout) findViewById(R.id.end_drawer); mContent = (TextView) findViewById(R.id.content_text); mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow_end, GravityCompat.END); // The drawer title must be set in order to announce state changes when // accessibility is turned on. This is typically a simple description, // e.g. "Navigation". mDrawerLayout.setDrawerTitle(GravityCompat.START, getString(R.string.drawer_title)); - mDrawer.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, + mStartDrawer.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, Shakespeare.TITLES)); - mDrawer.setOnItemClickListener(new DrawerItemClickListener()); + mStartDrawer.setOnItemClickListener(new DrawerItemClickListener()); // Find the toolbar in our layout and set it as the support action bar on the activity. // This is required to have the drawer slide "over" the toolbar. @@ -171,10 +174,15 @@ public class DrawerLayoutActivity extends AppCompatActivity { final int maxDrawerWidth = Math.max(0, drawerLayoutWidth - actionBarSize); final int drawerWidth = Math.min(idealDrawerWidth, maxDrawerWidth); - final DrawerLayout.LayoutParams drawerLp = - (DrawerLayout.LayoutParams) mDrawer.getLayoutParams(); - drawerLp.width = drawerWidth; - mDrawer.setLayoutParams(drawerLp); + final DrawerLayout.LayoutParams startDrawerLp = + (DrawerLayout.LayoutParams) mStartDrawer.getLayoutParams(); + startDrawerLp.width = drawerWidth; + mStartDrawer.setLayoutParams(startDrawerLp); + + final DrawerLayout.LayoutParams endDrawerLp = + (DrawerLayout.LayoutParams) mEndDrawer.getLayoutParams(); + endDrawerLp.width = drawerWidth; + mEndDrawer.setLayoutParams(endDrawerLp); // Remove ourselves as the pre-draw listener since this is a one-time // configuration. @@ -206,10 +214,22 @@ public class DrawerLayoutActivity extends AppCompatActivity { @Override public void onBackPressed() { - // Is the drawer open? - if (mDrawerLayout.isDrawerOpen(mDrawer)) { - // Close the drawer and return. - mDrawerLayout.closeDrawer(mDrawer); + boolean hadOpenDrawer = false; + // Is the start drawer open? + if (mDrawerLayout.isDrawerOpen(mStartDrawer)) { + // Close it + mDrawerLayout.closeDrawer(mStartDrawer); + hadOpenDrawer = true; + } + // Is the end drawer open? + if (mDrawerLayout.isDrawerOpen(mEndDrawer)) { + // Close it + mDrawerLayout.closeDrawer(mEndDrawer); + hadOpenDrawer = true; + } + + if (hadOpenDrawer) { + // If we had one or both drawers open, now that we've closed it / them, return. return; } @@ -231,7 +251,7 @@ public class DrawerLayoutActivity extends AppCompatActivity { public void onItemClick(AdapterView parent, View view, int position, long id) { mContent.setText(Shakespeare.DIALOGUE[position]); mToolbar.setTitle(Shakespeare.TITLES[position]); - mDrawerLayout.closeDrawer(mDrawer); + mDrawerLayout.closeDrawer(mStartDrawer); } } }