导航栏布局

tablayout+viewpager

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val titles = arrayListOf("放映","推荐")
        var list = mutableListOf<Fragment>()
        list.add(BlankFragment())
        list.add(BlankFragment2())

        viewpager.adapter= object :FragmentPagerAdapter(supportFragmentManager){
            override fun getItem(position: Int): Fragment {
                return list[position]
            }

            override fun getCount(): Int {
                return list.size
            }

            override fun getPageTitle(position: Int): CharSequence? {
                return titles[position]
            }

        }

        tablayout.setupWithViewPager(viewpager)

    }

tablayout+framelayout

val blankFragment = BlankFragment()
    val blankFragment2 = BlankFragment2()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        initTab()
        supportFragmentManager.beginTransaction().replace(R.id.framelayout,blankFragment).commit()
    }

    private fun initTab() {
        val titles = arrayListOf("放映","推荐")

        for (i in 0..1){
            tablayout.addTab(tablayout.newTab().setText(titles[i]))
        }

        tablayout.addOnTabSelectedListener(object :TabLayout.OnTabSelectedListener{
            override fun onTabReselected(p0: TabLayout.Tab?) {

            }

            override fun onTabUnselected(p0: TabLayout.Tab?) {
            }

            override fun onTabSelected(p0: TabLayout.Tab?) {
                p0?.apply {
                    when(position){
                        0->{
                            supportFragmentManager.beginTransaction().replace(R.id.framelayout,blankFragment).commit()
                        }

                        1->{
                            supportFragmentManager.beginTransaction().replace(R.id.framelayout,blankFragment2).commit()
                        }
                    }
                }
            }

        })

    }

radiogroup+viewpager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val syFragment = SyFragment()
        val yyFragment = YyFragment()
        val wdFragment = WdFragment()

        val list = mutableListOf(syFragment,yyFragment,wdFragment)

        viewpager.adapter = MyAdapter(list,supportFragmentManager)

        viewpager.addOnPageChangeListener(object :ViewPager.OnPageChangeListener{
            override fun onPageScrollStateChanged(state: Int) {
            }

            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
            }

            override fun onPageSelected(position: Int) {
                radiogroup.check(radiogroup.getChildAt(position).id)
            }

        })

        radiogroup.setOnCheckedChangeListener(object:RadioGroup.OnCheckedChangeListener{
            override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
                viewpager.setCurrentItem(radiogroup.indexOfChild(radiogroup.findViewById(checkedId)))
            }

        })

    }

    class MyAdapter(val list: List<Fragment>, fm: FragmentManager?) : FragmentStatePagerAdapter(fm) {
        override fun getItem(position: Int): Fragment {
            return list[position]
        }

        override fun getCount(): Int {
            return list.size
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 导航通常有两种布局方式:底部导航和顶部导航。下面是两种布局方式的实现方法: 1. 底部导航布局: 使用 `BottomNavigationView` 控件可以很方便地实现底部导航布局。在 XML 布局文件中添加 `BottomNavigationView` 控件并设置菜单项,如下所示: ```xml <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu" /> ``` 在代码中为 `BottomNavigationView` 设置菜单项的点击事件: ```java BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation); bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.action_home: // 处理点击首页菜单项的事件 break; case R.id.action_discover: // 处理点击发现菜单项的事件 break; case R.id.action_me: // 处理点击我的菜单项的事件 break; } return true; } }); ``` 2. 顶部导航布局: 使用 `Toolbar` 控件可以很方便地实现顶部导航布局。在 XML 布局文件中添加 `Toolbar` 控件并设置标题和菜单项,如下所示: ```xml <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:title="My App"> <Menu android:id="@+id/menu" app:showAsAction="never" app:menu="@menu/toolbar_menu" /> </androidx.appcompat.widget.Toolbar> ``` 在代码中为 `Toolbar` 设置菜单项的点击事件: ```java Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_search: // 处理点击搜索菜单项的事件 break; case R.id.action_settings: // 处理点击设置菜单项的事件 break; } return true; } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值