Android DrawerLayout(抽屉菜单)

DrawerLayout中,第一个子View是显示内容的View,第二个子View是抽屉菜单View,在第二个子View中设置属性layout_gravity="left|right",表示抽屉菜单是从左边还是右边滑出。

至于DrawerLayout跟SlidingMenu有什么区别,可以看我的上一篇博文。

demo下载地址:http://download.csdn.net/download/shenyuanqing/9190447

最终效果动画:


MainActivity

package com.example.shen.drawerlayoutdemo.activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.view.View;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Toast;import com.example.shen.drawerlayoutdemo.R;import com.example.shen.drawerlayoutdemo.adapter.MyFragmentPagerAdapter;import com.example.shen.drawerlayoutdemo.fragment.ContactsFragment;import com.example.shen.drawerlayoutdemo.fragment.DiscoveryFragment;import com.example.shen.drawerlayoutdemo.fragment.MessageFragment;import java.util.ArrayList;public class MainActivity extends FragmentActivity implements View.OnClickListener{    private ViewPager viewPager;    private RadioGroup radioGroup;    private RadioButton rbMessage,rbContacts,rbDiscovery;    private ArrayList fragmentList;    private MyFragmentPagerAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化界面组件        initView();        //初始化ViewPager        initViewPager();    }    private void initView(){        viewPager=(ViewPager)findViewById(R.id.view_pager);        radioGroup=(RadioGroup)findViewById(R.id.radio_group);        rbMessage=(RadioButton)findViewById(R.id.rb_message);        rbContacts=(RadioButton)findViewById(R.id.rb_contacts);        rbDiscovery=(RadioButton)findViewById(R.id.rb_discovery);        rbMessage.setOnClickListener(this);        rbContacts.setOnClickListener(this);        rbDiscovery.setOnClickListener(this);    }    private void initViewPager(){        MessageFragment messageFragment=new MessageFragment();        ContactsFragment contactsFragment=new ContactsFragment();        DiscoveryFragment discoveryFragment=new DiscoveryFragment();        fragmentList=new ArrayList();        fragmentList.add(messageFragment);        fragmentList.add(contactsFragment);        fragmentList.add(discoveryFragment);        adapter=new MyFragmentPagerAdapter(getSupportFragmentManager(),fragmentList);        //ViewPager设置适配器        viewPager.setAdapter(adapter);        //ViewPager显示第一个Fragment        viewPager.setCurrentItem(0);        //ViewPager页面切换监听        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                switch (position){                    case 0:                        radioGroup.check(R.id.rb_message);                        break;                    case 1:                        radioGroup.check(R.id.rb_contacts);                        break;                    case 2:                        radioGroup.check(R.id.rb_discovery);                        break;                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        //菜单中控件点击事件        findViewById(R.id.rl_menu).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(MainActivity.this,getString(R.string.setting),Toast.LENGTH_SHORT).show();            }        });    }    @Override    public void onClick(View v) {        switch(v.getId()){            case R.id.rb_message:                viewPager.setCurrentItem(0,false);                break;            case R.id.rb_contacts:                viewPager.setCurrentItem(1,false);                break;            case R.id.rb_discovery:                viewPager.setCurrentItem(2,false);                break;        }    }}
activity_main.xml

                                                                                                                       



更多相关文章

  1. android,actionbar,menu显示,图片,菜单禁用★★★
  2. Android(安卓)SlidingMenu 使用详解
  3. Android(安卓)UI开发第二十七篇――实现左右划出菜单
  4. Android仿微信底部菜单
  5. Android(安卓)分页控件制成底部菜单
  6. Android实现高斯模糊(也叫毛玻璃效果)
  7. Android(安卓)基于TranslateAnimation 的动画动态菜单(非系统menu
  8. Android(安卓)SDK Manager下载
  9. 第八章 Libgdx输入处理(9)菜单捕获

随机推荐

  1. Android中的异常处理 CrashHandler
  2. android 被强制横屏,Activity重启问题解决
  3. 【React Native开发】React Native For A
  4. ImageButton和Button区别
  5. Android(java)学习笔记94:关于广播接收者的
  6. No resource identifier found for attri
  7. Android的Service总结
  8. Android(安卓)命名规范 (提高代码可以读性
  9. Programming 3D games on Android with I
  10. android高效编程之使用本地变量