android使用DrawerLayout仿网易侧滑效果实现(二)

实现android新的侧滑效果,只移动侧滑界面,主界面动作效果不变

(1)总体界面的布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <include
            android:id="@+id/tv_content"
            layout="@layout/drawer_content_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <include
            layout="@layout/drawer_menu_layout"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:layout_gravity="start" />

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

</RelativeLayout>

(1)主界面的布局 drawer_content_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="主界面" />
</LinearLayout>

(2)侧滑界面的布局 drawer_menu_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="250dp"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/pink"
        android:gravity="center"
        android:text="侧滑界面" />
</LinearLayout>

(3)在MainActivity中,设置侧滑按钮的动作监听,打开侧滑界面布局,注意,侧滑界面和主界面的控件的绑定事件可以正常使用,和普通的activity一样处理

public class NaviationDrawerBaseUseAct extends AppCompatActivity  {
    //参考网址:https://blog.csdn.net/yangshangwei/article/details/50788880
    private DrawerLayout drawerLayout ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        drawerLayout = (DrawerLayout) findViewById(R.id.simple_navigation_drawer);

        //监听DrawerLayout的侧滑
        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
            }

            @Override
            public void onDrawerOpened(View drawerView) {
                Toast.makeText(NaviationDrawerBaseUseAct.this, "抽屉打开", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDrawerClosed(View drawerView) {
                Toast.makeText(NaviationDrawerBaseUseAct.this, "抽屉关闭", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });
    }
}

实现效果图:




猜你喜欢

转载自blog.csdn.net/cf8833/article/details/79882540
今日推荐