SlidingMenu侧滑菜单

本文介绍如何在Android应用中将SlidingMenu组件与Fragment进行整合。主要内容包括:MainActivity继承SlidingFragmentActivity的方式,实现SlidingMenu的配置及Fragment的添加过程。此外,还展示了如何通过点击事件访问Activity的方法。

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

slidingmenu 与fragment 结合

mainactivity继承SlidingFragmentActivity

import com.example.fragment.MyFragment;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.Toast;

public class MainActivity extends SlidingFragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 得到SlidingMenu的实例
        SlidingMenu slidingMenu = getSlidingMenu();
        // 设置菜单视图
        setBehindContentView(R.layout.slidingmenu_framelayout);
        // 给菜单视图添加内容__fragment
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        //通过Tag,来访问fragment
        transaction.add(R.id.framelayout_slidingmenu, new MyFragment(), "left")
                .commit();
        // 设置滑出方向的模式
        slidingMenu.setMode(SlidingMenu.LEFT);
        // 设置触摸位置
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        // 设置滑出宽度
        slidingMenu.setBehindOffset(200);
        // 设置滑出到样式------------此项不能写,写了报错--menu可能已经附加到activity了
        //slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        //设置阴影图片
        slidingMenu.setShadowDrawable(R.drawable.shadow_shape);
        //设置阴影宽度
        slidingMenu.setShadowWidthRes(R.dimen.ShadowWidth);
    }

    public void youmeng() {
        Toast.makeText(this, "  youmeng ", 1).show();
    }
}

fragment

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.day02_slidingmenu_fragment.MainActivity;
import com.example.day02_slidingmenu_fragment.R;

public class MyFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater,
            @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_view,container, false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        //getView()得到fragment的view即(onCreateView)
        TextView tv_dongtai = (TextView) getView()
                .findViewById(R.id.tv_dongtai);
        tv_dongtai.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), "点击了动态",Toast.LENGTH_SHORT).show();
                //访问activity,通过getActivity()然后强转,最后访问其方法
                MainActivity ma=(MainActivity) getActivity();
                ma.youmeng();
            }
        });
        super.onActivityCreated(savedInstanceState);
    }
}

SlidingMenu 与view

mainactivity继承Activity

 package com.example.day01_slidingmenu_demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT_RIGHT);// 模式
        menu.setFadeDegree(0.5f);// 设置渐入渐出效果的变化程度1.0为关闭时纯黑
        menu.setShadowDrawable(R.drawable.shadow_shape);// 设置阴影(slidingmenu与内容的接缝处)图片
        menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);// 设置阴影的宽度
        // SlidingMenu.SLIDING_WINDOW:菜单拉开后高度是全屏的
        // SlidingMenu.SLIDING_CONTENT:菜单拉开后高度是不包含Title/ActionBar的内容区域
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);// 把SlidingMenu附加在Activity上的模式
        menu.setBehindOffset(100);// 剩余内容的宽度
        // menu.setBehindWidth(100);//菜单滑出后的宽度
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 触摸模式:整个屏幕
        // menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);//手指紧贴边缘滑出
        // menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);...............
        View v = View.inflate(this, R.layout.slidingmenu_view, null);
        menu.setMenu(v);// 设置菜单view
        menu.setSecondaryMenu(R.layout.slidingmenu_second);
        TextView tv_onclick = (TextView) v.findViewById(R.id.onclick);
        tv_onclick.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "点击了子项tv", Toast.LENGTH_SHORT)
                        .show();
            }
        });

    }

}

fragment适配器还可以这么写

//在mainactivity中写了,适配器中可以直接用
 private static final String[] TITLE = new String[] { "头条", "房产", "另一面", "女人", "财经", "数码", "情感", "科技" };  
class TabPageIndicatorAdapter extends FragmentPagerAdapter {  
        public TabPageIndicatorAdapter(FragmentManager fm) {  
            super(fm);  
        }  

        @Override  
        public Fragment getItem(int position) {  
            //新建一个Fragment来展示ViewPager item的内容,并传递参数  
            Fragment fragment = new ItemFragment();    
            Bundle args = new Bundle();    
            args.putString("arg", TITLE[position]);    
            fragment.setArguments(args);    

            return fragment;  
        }  

        @Override  
        public CharSequence getPageTitle(int position) {  
            return TITLE[position % TITLE.length];  
        }  

        @Override  
        public int getCount() {  
            return TITLE.length;  
        }  
    }  
内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值