在Android 中写侧滑菜单可以自定义,也可以使用安卓官方自带的v4包,也有第三方包可以用。这里记录官方的
android.support.v4.widget.DrawerLayout
这种方法比较简单,在xml布局文件中搭建好,在Activity中调用m.openDrawer(Gravity.LEFT);方法就可以使用了。
注意点:这个方法不可以放在oncreat方法中直接使用,涉及线程的原因,这里不作介绍。
界面内容都放在v4包内,如下
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawerlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
界面内容
</android.support.v4.widget.DrawerLayout>
界面布局在v4包内会有些快捷词没法联想出来,所以最好先写好界面,然后在头尾加上v4包
侧滑效果有两种:手指侧滑和点击弹出侧滑界面,先上效果图:
XML文件布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.widget.DrawerLayout android:id="@+id/draw" android:layout_width="match_parent" android:layout_height="match_parent"> <!--主界面--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" android:orientation="horizontal"> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <!--侧滑界面--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left"//这个属性决定侧滑界面是左侧滑还是右侧滑 android:background="#ded3d3" android:orientation="horizontal"> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#000000" /> </LinearLayout> </android.support.v4.widget.DrawerLayout> </LinearLayout>
Maintivity.java文件
public class MainActivity extends AppCompatActivity { DrawerLayout drawerLayout; Button btn, btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawerLayout = (DrawerLayout) findViewById(R.id.draw); btn = (Button) findViewById(R.id.btn); btn2 = (Button) findViewById(R.id.btn2); //实现方法一:
定义好xml文件后手指侧滑就可以拉出侧滑界面了
//实现方法二:
定义好xml文件后,在java文件中添加点击事件也可以拉出侧滑菜单,代码如下:
// 点击主界面中的按钮弹出侧滑界面 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { drawerLayout.openDrawer(Gravity.LEFT); } }); // 点击侧滑界面中的按钮缩回侧滑界面 btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { drawerLayout.closeDrawer(Gravity.LEFT); } }); } }
注意:主界面布局一定要放在侧滑界面的上面,否则侧滑界面中无法添加点击事件