android slidingMenu主页面向右滑动 显示侧边栏

本文介绍了一种在Android应用中实现滑动菜单的方法,通过自定义BaseFragment类简化Fragment的创建过程,并展示了如何使用ContentFragment和LeftFragment来分别实现主界面和侧边栏的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主页面向右滑动,显示侧边栏,下面是效果图:

这里写图片描述

1、新建类BaseFragment继承Fragment:

public abstract class BaseFragment extends Fragment
{

    public Activity mActivity;

    //fragment创建;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mActivity = getActivity();
    }

    //处理fragment的布局;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return initView();

    }

    //所依附的activity创建完成;
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        initData();
    }

    //子类必须实现初始化布局的方法;
    public abstract View initView();

    //初始化数据,可以不实现;
    public void initData()
    {

    }
}

2、程序运行后显示的页面,新建类ContentFragment:

public class ContentFragment extends BaseFragment 
{
    @Override
    public View initView() 
    {
        View view = View.inflate(mActivity, R.layout.fragment_contents, null);
        return view;
    }

fragment_contents布局代码:

<?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"
    >

    <TextView
        android:id="@+id/vp_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="内容"
        />

</LinearLayout>

3、侧边栏,新建类LeftFragment:

public class LeftFragment extends BaseFragment 
{
    @Override
    public View initView()
    {
        View view = View.inflate(mActivity, R.layout.fragment_left, null);
        return view;
    }
}

fragment_left布局代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/fl_reft"
    android:background="#bcbcbc"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="  侧边栏"/>

</FrameLayout>

3、新建类MainActivity,
(点击链接查看SlidingMenu的导入方法http://blog.youkuaiyun.com/baidu_32731497/article/details/50544738:)

public class MainActivity extends SlidingFragmentActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);//去标题;
        setContentView(R.layout.activity_main);

        setBehindContentView(R.layout.fragment_left); //设置左侧边栏布局;

        SlidingMenu slidingMenu = getSlidingMenu(); //获取侧边栏对象;
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //设置全屏触摸;  
        slidingMenu.setBehindOffset(200); //设置侧边栏展现后主界面剩余显示的空间;

        initFragment();
    }

    //初始化fragment,将 fragment数据填充给布局文件;
    private void initFragment()
    {
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction(); //开启事务;
        ft.replace(R.id.fl_reft, new LeftFragment());   //布局替换;
        ft.replace(R.id.fl_content, new ContentFragment());
        ft.commit();  //提交事务;
    }

}

activity_main的布局代码:

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

</FrameLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值