I use ScrimInsetsFrameLayout to get the Navigation Drawer in the ToolBar using the StatusBar on it, so I follow the manual and read a lot about it, but there is something wrong, even if I didn't miss anything.
Whenever I click one (out of four) actions in drawer_listView or ic_drawer , the application power closes without messages in Logcat .
MainActivity
public class MainActivity extends ActionBarActivity { DrawerLayout mDrawerLayout; ListView mDrawerList; ActionBarDrawerToggle mDrawerToggle; String[] mDrawerListItems; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer); mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark)); mDrawerList = (ListView)findViewById(android.R.id.list); mDrawerListItems = getResources().getStringArray(R.array.drawer_list); mDrawerList.setAdapter(new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, mDrawerListItems)); mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { openFragment(position); } }); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close){ public void onDrawerClosed(View v){ super.onDrawerClosed(v); invalidateOptionsMenu(); syncState(); } public void onDrawerOpened(View v){ super.onDrawerOpened(v); invalidateOptionsMenu(); syncState(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerToggle.syncState(); } protected void openFragment(int position){ mDrawerLayout.closeDrawer(mDrawerList); switch (position) { case 0: startActivity(new Intent(this, WIND.class)); break; case 1: startActivity(new Intent(this, GEO.class)); break; case 2: startActivity(new Intent(this, COMPASS.class)); break; case 3: startActivity(new Intent(this, BARO_ALTI.class)); break; default: break; } } @Override protected void onPostCreate(Bundle savedInstanceState){ super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case android.R.id.home: { if (mDrawerLayout.isDrawerOpen(mDrawerList)){ mDrawerLayout.closeDrawer(mDrawerList); } else { mDrawerLayout.openDrawer(mDrawerList); } return true; } default: return super.onOptionsItemSelected(item); } }
my_activity.xml :
<?xml version="1.0"?> <android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/drawer" tools:context=".MainActivity" android:fitsSystemWindows="true"> <FrameLayout android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent"> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:popupTheme="@style/Theme.AppCompat" app:theme="@style/ToolbarTheme" android:background="@color/primary" android:id="@+id/toolbar"/> <FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/content_frame"> </FrameLayout> </FrameLayout> <beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/linearLayout" android:layout_width="304dp" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:insetForeground="#4000"> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:background="#ffffffff" android:divider="#ffffffff" android:dividerHeight="8dp" android:id="@android:id/list" android:layout_gravity="start" android:scrollbars="none"/> </beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout>
My problem is limited to my_activity.xml . Please help me, I can not continue my project.
[Update]
I made my layout as if it was https://github.com/google/iosched/blob/master/android/src/main/res/layout/activity_map.xml , but ** why am I not getting the same result? ! **
<?xml version="1.0"?> <android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/drawer" tools:context=".MainActivity" android:fitsSystemWindows="true"> <beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:insetForeground="#4000"> <FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/content_frame"> </FrameLayout> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:popupTheme="@style/Theme.AppCompat" app:theme="@style/ToolbarTheme" android:background="@color/primary" android:id="@+id/toolbar"/> </beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:background="#ffffffff" android:divider="#ffffffff" android:dividerHeight="8dp" android:id="@android:id/list" android:layout_gravity="start" android:scrollbars="none"/> </android.support.v4.widget.DrawerLayout>
source share