fragment+侧拉

本文介绍了一个基于Android的应用程序中实现导航抽屉功能的方法。通过使用DrawerLayout和FragmentManager,可以实现在不同Fragment间的切换,并展示了如何响应抽屉的打开和关闭事件。

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

package com.xinzhengwei.dierzhoulianxi;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.xinzhengwei.dierzhoulianxi.com.bawie.bean.Shuju;
import com.xinzhengwei.dierzhoulianxi.com.bawie.fragment.Fr1;
import com.xinzhengwei.dierzhoulianxi.com.bawie.fragment.Fr2;
import com.xinzhengwei.dierzhoulianxi.com.bawie.fragment.Fr3;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private RadioGroup rg;
    private FragmentManager manager;
    private Fr1 fr1;
    private Fr2 fr2;
    private Fr3 fr3;
    ArrayList<Fragment> list=new ArrayList<>();
    List<Shuju> shujulist=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rg =(RadioGroup) findViewById(R.id.rg);
        initfragment();
        ListView lv = findViewById(R.id.lv);
        lv.setAdapter(new adapter());
        init();
        manager = getSupportFragmentManager();
        manager.beginTransaction().add(R.id.fl,list.get(0)).commit();
        DrawerLayout dl = findViewById(R.id.dl);
        dl.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {

            }

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

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

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });

        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){
                    case R.id.rb:
                        manager.beginTransaction().replace(R.id.fl,list.get(0)).commit();
                        break;
                    case R.id.rb1:
                        Log.e("TAG", "onCheckedChanged: "+"123123" );
                        manager.beginTransaction().replace(R.id.fl,list.get(1)).commit();
                        break;
                    case R.id.rb2:
                        manager.beginTransaction().replace(R.id.fl,list.get(2)).commit();
                        break;
                }
            }
        });
    }

    private void init() {

        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));
        shujulist.add(new Shuju(R.mipmap.ic_launcher,"教育"));

    }

    class adapter extends BaseAdapter{

        @Override
        public int getCount() {
            return shujulist.size();
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {

            View view1 = View.inflate(MainActivity.this, R.layout.text_main, null);

            ImageView iv = view1.findViewById(R.id.iv);
            TextView tv = view1.findViewById(R.id.tv);

            iv.setImageResource(shujulist.get(i).getImage());
            tv.setText(shujulist.get(i).getName());

            return view1;
        }
    }

    private void initfragment() {

        fr1 = new Fr1();
        fr2 = new Fr2();
        fr3 = new Fr3();
        list.add(fr1);
        list.add(fr2);
        list.add(fr3);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值