DrawerLayout的使用

来源:互联网 发布:37少年群侠传进阶数据 编辑:程序博客网 时间:2024/06/05 15:36

DrawerLayout基础布局布局

介绍

布局中允许放两个直接的控件

  • 第一个:主屏幕中显示的内容
  • 第二个:滑动菜单中显示的内容

布局代码

activity_main,xml

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/drawerlayout"    android:layout_width="match_parent"    android:layout_height="match_parent">    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent">        <android.support.v7.widget.Toolbar            android:id="@+id/toorbar"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:background="#3F51B5"></android.support.v7.widget.Toolbar>    </FrameLayout>    <TextView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:text="DrawerLayout"        android:layout_gravity="start"/></android.support.v4.widget.DrawerLayout>
  • FrameLayout:作为主屏幕显示的内容
  • TextView:滑动菜单中显示的内容

注意

第二个控件,layout_gravity属性是必须指定的,用于设定DrawerLayout滑动菜单是在屏幕的左边还是右边。

  • left:在左边
  • right:在右边
  • start:根据系统语言决定

简单的效果

现在运行就可以啦。当我们在边缘滑动时才能将菜单拉出来,我们可以进行简单的提示。

与Toolbar使用

mainActivity.java

public class MainActivity extends AppCompatActivity {    DrawerLayout drawerlayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Toolbar toorbar = (Toolbar) findViewById(R.id.toorbar);        setSupportActionBar(toorbar);        ActionBar actionBar = getSupportActionBar();        if (actionBar!=null) {            //显示导航栏            actionBar.setDisplayHomeAsUpEnabled(true);            //显示导航栏图标            actionBar.setHomeAsUpIndicator(R.drawable.navigation);        }    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()){            case android.R.id.home:                drawerlayout.openDrawer(GravityCompat.START);                Log.d("MainActivity", "home");                break;        }        return  true;    }}
  • getSupportActionBar():得到ActionBar的实例,具体由Toolbar实现。
  • actionBar.setDisplayHomeAsUpEnabled(true):设置导航按钮图标
  • actionBar.setHomeAsUpIndicator(R.drawable.navigation):设置周导航按钮图标
  • android.R.id.home:导航按钮id
  • drawerlayout.openDrawer(GravityCompat.START):将菜单滑动出来
0 0
原创粉丝点击