侧滑,侧拉,菜单DrawerLayout 侧滑,侧拉,菜单DrawerLayout

例:


侧滑,侧拉,菜单DrawerLayout

点击按钮 打开,关闭 侧边框(可以拉动)




MainActivity    主方法:

public class MainActivity extends AppCompatActivity {
    private List<String> data=new ArrayList<>();
    private DrawerLayout drawerLayout;
    private RelativeLayout menu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        drawerLayout = findViewById(R.id.drawer);
        menu = findViewById(R.id.menu);//菜单

        //点击按钮,打开菜单
        Button b=findViewById(R.id.btnOpen);
        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                drawerLayout.openDrawer(menu);//打开菜单
            }
        });

        //侧拉菜单的列表
        ListView listView=findViewById(R.id.lv);
        for(int i=0;i<20;i++){
            data.add("item"+i);
        }
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
        listView.setAdapter(adapter);

        //添加监听事件
        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                Log.d("zzz","--"+slideOffset);
            }
            //
            @Override
            public void onDrawerOpened(View drawerView) {
                Toast.makeText(MainActivity.this,"打开了!",Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onDrawerClosed(View drawerView) {
                Toast.makeText(MainActivity.this,"关闭了!",Toast.LENGTH_SHORT).show();
            }
            /**
             * 当抽屉滑动状态改变的时候被调用
             * 状态值是STATE_IDLE(闲置--0, STATE_DRAGGING(拖拽的--1, STATE_SETTLING(固定--2)中之一。
             * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE
             */
            @Override
            public void onDrawerStateChanged(int newState) {
            }
        });
    }
}

activity_main  布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">
    <!--主页面的内容 ctrl+alt+l 格式化代码-->
    <LinearLayout
        android:orientation="vertical"
        android:layout_height="match_parent"
        android:layout_width="match_parent">
        <Button
            android:id="@+id/btnOpen"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:text="Hello!"/>
        <!--用来放置 碎片的容器 -->
        <TextView
            android:text="gggggggg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <!---菜单内容 android:layout_gravity="start":菜单在左边 end 菜单在右边 侧滑菜单一般不要超过 320dp -->
    <RelativeLayout android:id="@+id/menu"
        android:layout_height="match_parent"
        android:layout_width="170dp"
        android:background="#f00"
        android:layout_gravity="start">
        <ImageView android:id="@+id/img"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:src="@mipmap/ic_launcher"/>
        <ListView android:id="@+id/lv"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_below="@+id/img"/>
    </RelativeLayout>
</android.support.v4.widget.DrawerLayout>



猜你喜欢

转载自blog.csdn.net/jun_tong/article/details/80631347