SlideMenu实现抽屉

博客介绍了SlidingMenu的相关设置模式,如设置显示方向、触摸屏幕模式、菜单内容、阴影宽度等,还提及渐变程度、淡入淡出效果等设置,同时强调必须导入sl包,最后提到代码实现。

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

理论性知识
以及一些sytle
设置模式: setMode(SlidingMenu.LEFT);
设置触摸屏幕的模式:setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//TOUCHMODE_FULLSCREEN全屏;TOUCHMODE_MARGIN边界;TOUCHMODE_NONE不能滑动
设置左侧菜单滑动显示的内容:slidingMenu.setMenu(R.layout.slide_menu);
设置左侧滑动菜单的阴影宽度:slidingMenu.setShadowWidth(300);
设置滑动时的渐变程度:slidingMenu.setFadeDegree(0.5f);范围0.0f-1.0f
设置淡入淡出的效果:slidingMenu.setFadeEnabled(true);
设置左侧滑动菜单的阴影图片(颜色):setShadowDrawable();
设置滑出时主页面显示的剩余宽度:slidingMenu.setBehindOffset(200);

必须要导入sl包
2.代码实现:

package com.example.day4;

import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
    ViewPager viewPager;
    base base;
    RadioGroup radioGroup;
    RadioButton r1;
    RadioButton r2;
    RadioButton r3;
    ArrayList<Fragment> list = new ArrayList<>();
    F1 f1 = new F1();
    F2 f2 = new F2();
    F3 f3 = new F3();
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.tool);
        viewPager = findViewById(R.id.page);
        radioGroup=findViewById(R.id.www);
        r1=findViewById(R.id.w1);
        r2=findViewById(R.id.w2);
        r3=findViewById(R.id.w3);
        toolbar.setNavigationIcon(R.mipmap.ic_launcher_round);
        list.clear();
        list.add(f1);
        list.add(f2);
        list.add(f3);
        base = new base(getSupportFragmentManager(), list);
        viewPager.setAdapter(base);

        //创建
        final SlidingMenu slidingMenu = new SlidingMenu(this);
//        slidingMenu.setShadowWidth(200);//阴影
//        slidingMenu.setShadowDrawable(R.mipmap.tu);



        slidingMenu.setFadeDegree(0.5f);//渐变
        slidingMenu.setFadeEnabled(true);//淡入淡出

        //绑定当前act
        slidingMenu.attachToActivity(this,slidingMenu.SLIDING_CONTENT);
        //从哪边出来
        slidingMenu.setMode(SlidingMenu.LEFT);
        //自定义布局
        View inflate = LayoutInflater.from(this).inflate(R.layout.layout, null);
        TextView t1 = inflate.findViewById(R.id.q1);
        TextView t2 = inflate.findViewById(R.id.q2);
        TextView t3 = inflate.findViewById(R.id.q3);

        t1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            viewPager.setCurrentItem(0);
            slidingMenu.showContent();
                r1.setChecked(true);
            }
        });
        t2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(1);
                slidingMenu.showContent();
                r2.setChecked(true);
            }
        });
        t3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(2);
                slidingMenu.showContent();
                r3.setChecked(true);
            }
        });
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
            if(i==0){
                r1.setChecked(true);
            }
                if(i==1){
                    r2.setChecked(true);
                }
                if(i==2){
                    r3.setChecked(true);
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });























        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                slidingMenu.showMenu();
            }
        });
        slidingMenu.setMenu(inflate);
        slidingMenu.setBehindOffset(200);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏
        slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
            @Override
            public void onOpened() {
                Toast.makeText(MainActivity.this, "打开了", Toast.LENGTH_SHORT).show();
            }
        });
        slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {
            @Override
            public void onClosed() {
                Toast.makeText(MainActivity.this, "关闭了", Toast.LENGTH_SHORT).show();
            }
        });
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(r1.isChecked()){
                    viewPager.setCurrentItem(0);
                }
                if(r2.isChecked()){
                    viewPager.setCurrentItem(1);
                }
                if(r3.isChecked()){
                    viewPager.setCurrentItem(2);
                }
            }
        });

    }
}






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值