码迷,mamicode.com
首页 > 移动开发 > 详细

android ——滑动菜单

时间:2017-09-03 15:36:10      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:标题栏   prim   属性   case   事件   打开   protect   bundle   star   

DrawerLayout是一个拥有两个子控件的布局,第一个子控件是主屏幕中显示的内容,第二个子控件是滑动菜单中显示的内容:

 1 <android.support.v4.widget.DrawerLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     android:id="@+id/drawer_layout"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     >
 8 
 9     <FrameLayout
10         android:layout_width="match_parent"
11         android:layout_height="match_parent">
12 
13         <android.support.v7.widget.Toolbar
14             android:id="@+id/toolbar"
15             android:layout_width="match_parent"
16             android:layout_height="?attr/actionBarSize"
17             android:background="?attr/colorPrimary"
18             android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
19             app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
20 
21     </FrameLayout>
22     <TextView
23         android:layout_width="match_parent"
24         android:layout_height="match_parent"
25         android:layout_gravity="start"
26         android:text="这是一个菜单"
27         android:textSize="30sp"
28         android:background="#FFF"/>
29 </android.support.v4.widget.DrawerLayout>

要注意的地方是第二个子控件TextView的layout_gravity属性指定的是滑动菜单是在屏幕的左边还是右边,属性值使用right或者left,这里使用start表示根据系统语言进行判断。

这里的效果是这样:

技术分享

然后在标题栏上加入一个导航按钮,点击导航按钮也能打开滑动菜单,具体实现原理是,标题栏左方本来就有一个叫作HomeAsup的按钮,它默认的图标是一个返回的箭头,含义是返回上一个活动,所以只需要将它显示出来,修改它的图标和点击事件即可。

具体java代码:

 1 public class MainActivity extends AppCompatActivity {
 2 
 3     private DrawerLayout mDrawerLayout;
 4     @Override
 5     protected void onCreate(Bundle savedInstanceState) {
 6         super.onCreate(savedInstanceState);
 7         setContentView(R.layout.activity_main);
 8         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 9         setSupportActionBar(toolbar);
10         mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
11         ActionBar actionBar = getSupportActionBar();
12         if(actionBar != null){
13             //让ActionBar的HomeAsUp按钮显示出来
14             actionBar.setDisplayHomeAsUpEnabled(true);
15             //改变HomeAsUp按钮的图标
16             actionBar.setHomeAsUpIndicator(R.drawable.ic_action_name);
17         }
18 
19     }
20     ...
21     public boolean onOptionsItemSelected(MenuItem item){
22         switch (item.getItemId()){
23             case android.R.id.home:
24                 mDrawerLayout.openDrawer(GravityCompat.START);
25                 break;
26     ...
27             default:
28                 break;
29         }
30         return true;
31     }
32 }

 

android ——滑动菜单

标签:标题栏   prim   属性   case   事件   打开   protect   bundle   star   

原文地址:http://www.cnblogs.com/xxbbtt/p/7469627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!