DrawerLayout与Toolbar实现抽屉+SlidingMenu第三方

博客介绍了DrawerLayout与Toolbar的使用,包括mainactivity布局和activity中的代码。还提及了第三方SlidingMenu,需要导入slide包,并给出了SlidingMenu代码。

DrawerLayout与Toolbar

mainactivity布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.day09.MainActivity"
    android:orientation="vertical">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!--抽屉布局-->
        <LinearLayout
            android:layout_gravity="left"
            android:layout_width="300dp"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="返回抽屉"
                android:id="@+id/bt"/>
            <ListView
                android:id="@+id/lv"
                android:background="#038EFD"
                android:layout_width="wrap_content"
                android:layout_height="match_parent">

            </ListView>
        </LinearLayout>
        
        <!--主界面布局-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <android.support.v7.widget.Toolbar
                android:background="#FF1000"
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="50dp">

                <RelativeLayout
                    android:layout_marginRight="20dp"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:text="消息"
                        android:textColor="#fff"
                        android:textSize="20sp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/add"
                        android:id="@+id/iv"/>
                </RelativeLayout>

            </android.support.v7.widget.Toolbar>
        </LinearLayout>

    </android.support.v4.widget.DrawerLayout>

</LinearLayout>

activity中的代码

public class MainActivity extends AppCompatActivity {
    Toolbar toolbar;
    DrawerLayout drawerLayout;
    Button button;

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        drawerLayout = findViewById(R.id.drawer_layout);
        button = findViewById(R.id.bt);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                drawerLayout.closeDrawer(Gravity.LEFT);
                Toast.makeText(MainActivity.this, "返回成功!", Toast.LENGTH_SHORT).show();
            }
        });
        initToolBar();
        bindToolBar();
    }
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void initToolBar() {

        toolbar = findViewById(R.id.toolbar);
        //设置导航图标
        toolbar.setNavigationIcon(R.mipmap.ic_launcher);
        //设置toolbar的大标题
        toolbar.setTitle("我是标题");
        toolbar.setLogo(R.mipmap.ic_launcher_round);
        //设置toolbar的小标题
        toolbar.setSubtitle("我是内容");


    }
    //toolbar和drawerLayout绑定实现切换效果
    private void bindToolBar() {
        //设置开关
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.app_name, R.string.app_name);
        //开启同步
        toggle.syncState();
        //设置给drawerLayout
        drawerLayout.addDrawerListener(toggle);
    }
}

SlidingMenu第三方

需要导入一个slide包,如下:
在这里插入图片描述
SlidingMenu代码如下:

public class MainActivity extends AppCompatActivity {
    SlidingMenu slidingMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        slidingMenu = new SlidingMenu(this);

        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
        slidingMenu.setMode(SlidingMenu.LEFT);
        View view = LayoutInflater.from(this).inflate(R.layout.layout, null);
        Button button = view.findViewById(R.id.bt_close);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                slidingMenu.showContent();
            }
        });

        slidingMenu.setMenu(view);

        slidingMenu.setBehindOffset(200);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值