侧滑菜单

来源:互联网 发布:求逆矩阵的方法 编辑:程序博客网 时间:2024/05/21 18:47

Android 侧滑菜单

2017/10/14 10:14:03


效果

实现

  • 使用DrawerLayout布局
  • DrawerLayout中添加RelativeLayout布局
  • RelativeLayout中加如ImageView控件和ListView控件
  • 设置DrawerLayout的监听事件
  • 设置ListView的监听事件

布局文件代码

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/drawer_layout"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.maohuawei.skatemenu.MainActivity">    <RelativeLayout        android:id="@+id/relative_layout"        android:layout_width="200dp"        android:layout_height="match_parent"        android:layout_gravity="left"        android:background="#fff">        <ImageView            android:id="@+id/imageView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@mipmap/qq" />        <ListView            android:id="@+id/listView"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_below="@+id/imageView">        </ListView>    </RelativeLayout></android.support.v4.widget.DrawerLayout>

代码

public class MainActivity extends AppCompatActivity {    //定义控件    private DrawerLayout drawerLayout;    private ImageView imageView;    private ListView listView;    private RelativeLayout relativeLayout;    //ListView适配器数据源    private List<String> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化控件        drawerLayout = findViewById(R.id.drawer_layout);        imageView = findViewById(R.id.imageView);        listView = findViewById(R.id.listView);        relativeLayout = findViewById(R.id.relative_layout);        //实例化集合        list = new ArrayList<>();        //添加数据        list.add("头条");        list.add("娱乐");        list.add("汽车");        list.add("出行");        list.add("国际");        //设置适配器        listView.setAdapter(new ArrayAdapter<String>(MainActivity.this, R.layout.support_simple_spinner_dropdown_item, list));        //抽屉监听事件        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {            //表示的抽屉拖出来的宽度,,像素值            @Override            public void onDrawerSlide(View drawerView, float slideOffset) {            }            //打开抽屉            @Override            public void onDrawerOpened(View drawerView) {            }            //抽屉关闭            @Override            public void onDrawerClosed(View drawerView) {            }            //抽屉的状态改变            //idle -- 表示与导航视图没有交互,静止            //dragging -- 表示目前有与导航视图的交互,拖拽的状态            //settling -- 表示有与导航视图的交互,并且导航视图正在关闭或打开            @Override            public void onDrawerStateChanged(int newState) {            }        });        //ListView 设置监听事件        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //点击条目隐藏侧滑菜单                drawerLayout.closeDrawer(relativeLayout);            }        });    }}
原创粉丝点击