Android(安卓)抽屉导航
16lz
2021-12-04
效果
使用最新的android-support-v4.jar, 见附件.
...
/** 抽屉导航变量 */ private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; ... /** 抽屉导航相关 */ mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); mDrawerLayout.setDrawerShadow(R.drawable.draw, GravityCompat.RELATIVE_HORIZONTAL_GRAVITY_MASK); mDrawerList.setAdapter(new SimpleAdapter(this, getDrawerItems(false), R.layout.drawer_item, new String[] { "drawer_img", "drawer_title" }, new int[] { R.id.drawer_img, R.id.drawer_title })); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); mDrawerToggle = new ActionBarDrawerToggle( this, /** host Activity */ mDrawerLayout, /** DrawerLayout object */ R.drawable.draw, /** nav drawer p_w_picpath to replace 'Up' caret */ R.string.search_label, /** "open drawer" description for accessibility */ R.string.defalut_text /** "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { getActionBar().setTitle("onDrawerClosed"); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } public void onDrawerOpened(View drawerView) { getActionBar().setTitle("onDrawerOpened"); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } }; mDrawerLayout.setDrawerListener(mDrawerToggle); ... /** * 监听抽屉导航item点击事件 */ private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(view, position); } } private boolean flag = false; private void selectItem(View view, int position) { if (position == 0) { if (!flag) { mDrawerList.setAdapter(new SimpleAdapter(this, getDrawerItems(true), R.layout.drawer_item, new String[] { "drawer_img", "drawer_title" }, new int[] { R.id.drawer_img, R.id.drawer_title })); flag = true; } else { mDrawerList.setAdapter(new SimpleAdapter(this, getDrawerItems(false), R.layout.drawer_item, new String[] { "drawer_img", "drawer_title" }, new int[] { R.id.drawer_img, R.id.drawer_title })); flag = false; } } else { TextView title = (TextView) view.findViewById(R.id.drawer_title); String cityName = title.getText().toString(); this.cityInput.setText(cityName); } }
详见我翻译的http://lichen.blog.51cto.com/697816/1211685
更多相关文章
- [1] Android主要源代码组成
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
- android facebook authorize 时禁止调用facebook app
- Android体系结构
- android 胡言乱语 1 android basic
- 【Android】如何调节屏幕亮度,关闭屏幕
- ch020 Android(安卓)SQLite3(第二部分)
- ch013 Android(安卓)ScrollView与ListView
- ch010 Android(安卓)GridView