今天下午 小编在与同事们研究侧滑菜单的时候 百度搜索了很多例子 差不多都是一个人的项目 但是 使用起来 报错 报错 报错
研究了好久 差点崩溃-------------于是我们打算自己研究 于是就这样动了起来 最后 只用了一句代码 搞定 ----------------------
蓝瘦香菇 好了不多说了
首先是布局代码 随便写的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="yyzy.com.intelligent_transportation.ui.MainActivity">
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/draw">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lin1"
android:orientation="vertical"
android:background="@drawable/qq">
</LinearLayout>
<LinearLayout
android:layout_width="600dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/lin2"
android:background="@drawable/img_frame_background"
android:layout_gravity="start">
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
package yyzy.com.intelligent_transportation.ui; import android.content.res.Configuration; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import yyzy.com.intelligent_transportation.R; public class MainActivity extends AppCompatActivity { DrawerLayout drawerLayout;//声明 LinearLayout lin1; LinearLayout lin2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 drawerLayout= (DrawerLayout) findViewById(R.id.draw); lin1= (LinearLayout) findViewById(R.id.lin1); lin2= (LinearLayout) findViewById(R.id.lin2); //监听drawerLayout切换事件 drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() { /** * 当抽屉被滑动的时候调用此方法 * slideOffset 表示 滑动的幅度(0-1) */ @Override public void onDrawerSlide(View drawerView, float slideOffset) { //设置主界面的linearLayout(lin1)的平移动画即可 //在使用侧滑菜单lin2的宽度 * 滑动的幅度 作为平移动画的偏移量即可 lin1.setTranslationX(lin2.getWidth()*slideOffset); } /** * 当一个抽屉被完全打开的时候被调用 */ @Override public void onDrawerOpened(View drawerView) { } /** * 当一个抽屉完全关闭的时候调用此方法 */ @Override public void onDrawerClosed(View drawerView) { } /** * 当抽屉滑动状态改变的时候被调用 * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。 * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE */ @Override public void onDrawerStateChanged(int newState) { } }); } }
就这样ok了