Android 抽屉式
16lz
2021-01-23
之前一直以为Android的抽屉式特别麻烦,今天做了demo,废话不多说了,直接代码。
package com.lizw.menudome;import android.app.ActionBar;import android.app.Activity;import android.content.res.Configuration;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.support.v4.app.ActionBarDrawerToggle;import android.support.v4.widget.DrawerLayout;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private Drawable drawerArrow; ActionBar ab = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ab = getActionBar(); ab.setDisplayHomeAsUpEnabled(true); ab.setDisplayShowHomeEnabled(false); ab.setHomeButtonEnabled(true);// ab.setDisplayShowCustomEnabled(true); ab.setTitle("检测"); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.navdrawer); drawerArrow = getResources().getDrawable(R.drawable.ic_drawer); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,false,R.drawable.ic_drawer, 0, 0) {public void onDrawerClosed(View view) {super.onDrawerClosed(view);invalidateOptionsMenu();ab.setTitle("检测中心");}public void onDrawerOpened(View drawerView) {super.onDrawerOpened(drawerView);invalidateOptionsMenu();ab.setTitle("个人中心");}}; mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerToggle.syncState(); String[] values = new String[]{ "列表导航", "列表导航", "列表导航", "列表导航" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); mDrawerList.setAdapter(adapter); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { if (mDrawerLayout.isDrawerOpen(mDrawerList)) { mDrawerLayout.closeDrawer(mDrawerList); } else { mDrawerLayout.openDrawer(mDrawerList); } } return super.onOptionsItemSelected(item); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); }}
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/nav_menu_toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true"android:padding="10dp" android:text="@string/app_description"/> </RelativeLayout> <!-- The navigation drawer --> <ListView android:id="@+id/navdrawer" android:layout_width="@dimen/navdrawer_width" android:layout_height="match_parent" android:layout_gravity="start" android:background="@android:color/white" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:drawSelectorOnTop="false"> </ListView></android.support.v4.widget.DrawerLayout>
更多相关文章
- 【转】每个Android开发者都应该了解的资源列表
- Android卡片式列表布局
- android 动态壁纸 3 解决 动态壁纸列表界面icon问题
- Android当中的MVP模式(三)基于分页列表的封装
- 无废话Android之android下junit测试框架配置、保存文件到手机内
- Android 视频列表(RecyclerView)实现自动播放
- android 布局 ListView中的列表 RelativeLayout
- android 应用程序不出现在最近打开程序列表里
- android 展示单选列表对话框 builder.setSingleChoiceItems