当前位置: 首页 > news >正文

深圳自助企业建站模版郑州建网站哪家好

深圳自助企业建站模版,郑州建网站哪家好,服务哪家好网站制作,个人网站对主机有什么要求创建一个包含“首页”、“分类”和“我的”选项卡的TabBar并实现切换功能#xff0c;通常可以通过使用TabLayout结合ViewPager或ViewPager2来完成。以下是一个基本的示例#xff0c;展示了如何使用Kotlin和XML来实现这个功能。 1.添加依赖项到build.gradle dependencies {/…创建一个包含“首页”、“分类”和“我的”选项卡的TabBar并实现切换功能通常可以通过使用TabLayout结合ViewPager或ViewPager2来完成。以下是一个基本的示例展示了如何使用Kotlin和XML来实现这个功能。 1.添加依赖项到build.gradle dependencies {// ...implementation(com.google.android.material:material:1.8.0)implementation(androidx.viewpager2:viewpager2:1.0.0) } 2.在你的布局XML文件中定义TabLayout和ViewPager2 ?xml version1.0 encodingutf-8? LinearLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroidx.viewpager2.widget.ViewPager2android:idid/viewPagerandroid:layout_widthmatch_parentandroid:layout_height0dpandroid:layout_weight1 /com.google.android.material.tabs.TabLayoutandroid:idid/tabLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:tabModefixedapp:tabGravityfillapp:tabIndicatorHeight0dp //LinearLayout 3.在你的Activity中设置ViewPager2和TabLayout package com.example.gatestdemol.tabbarimport androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.viewpager2.adapter.FragmentStateAdapter import com.example.gatestdemol.databinding.ActivityTabBarBinding import com.google.android.material.tabs.TabLayoutMediatorclass TabBarActivity : AppCompatActivity() {private lateinit var binding: ActivityTabBarBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// setContentView(R.layout.activity_tab_bar)binding ActivityTabBarBinding.inflate(layoutInflater)setContentView(binding.root)val adapter ViewPagerAdapter(this)binding.viewPager.adapter adapterTabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position -tab.text when(position) {0 - 首页1 - 分类2 - 我的else - null}}.attach()}private inner class ViewPagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {override fun getItemCount(): Int {return 3}override fun createFragment(position: Int): Fragment {return when(position) {0 - HomeFragment()1 - CategoryFragment()2 - ProfileFragment()else - Fragment()}}}} 在上面的代码中我们创建了一个ViewPagerAdapter类继承自FragmentStateAdapter并重写了getItemCount和createFragment方法来分别返回选项卡的数量和对应的Fragment。TabLayoutMediator用于将TabLayout和ViewPager2绑定起来并设置每个选项卡的标题。 4.创建对应的Fragment类 package com.example.gatestdemol.tabbarimport android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.example.gatestdemol.databinding.FragmentHomeBindingclass HomeFragment: Fragment() {private var binding: FragmentHomeBinding? nulloverride fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {binding FragmentHomeBinding.inflate(inflater,container,false)return binding?.root}override fun onDestroy() {super.onDestroy()binding null}} class CategoryFragment : Fragment() {// 实现分类Fragment的布局和逻辑 }class ProfileFragment : Fragment() {// 实现我的Fragment的布局和逻辑 } 每个Fragment对应一个页面在这里你可以实现各自的布局和业务逻辑。 这是一个基本的TabBar实现你可以根据自己的需求添加图标、自定义样式等。 简单TabBar示意图: 5.TabBar添加Icon package com.example.gatestdemol.tabbarimport androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.viewpager2.adapter.FragmentStateAdapter import com.example.gatestdemol.R import com.example.gatestdemol.databinding.ActivityTabBarBinding import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediatorclass TabBarActivity : AppCompatActivity() {private lateinit var binding: ActivityTabBarBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivityTabBarBinding.inflate(layoutInflater)setContentView(binding.root)val adapter ViewPagerAdapter(this)binding.viewPager.adapter adapterTabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position -tab.text when(position) {0 - 首页1 - 分类2 - 我的else - null}tab.icon when(position) {0 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_home_default)1 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_category_default)2 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_profile_default)else - null}}.attach()binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {override fun onTabSelected(tab: TabLayout.Tab?) {// 一套Icon时用这种方式//tab?.icon?.setTint(ContextCompat.getColor(applicationContext, R.color.your_selected_text_color))// 两套Icon时用这种方式XML中不要配置app:tabIconTintcolor/your_icon_tint_colortab?.icon when(tab?.position) {0 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_home_selected)1 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_category_selected)2 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_profile_selected)else - null}}override fun onTabUnselected(tab: TabLayout.Tab?) {// 一套Icon时用这种方式//tab?.icon?.setTint(ContextCompat.getColor(applicationContext, R.color.your_icon_tint_color))// 两套Icon时用这种方式XML中不要配置app:tabIconTintcolor/your_icon_tint_colortab?.icon when(tab?.position) {0 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_home_default)1 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_category_default)2 - ContextCompat.getDrawable(thisTabBarActivity, R.drawable.ic_profile_default)else - null}}override fun onTabReselected(tab: TabLayout.Tab?) {// Do nothing}})}private inner class ViewPagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {override fun getItemCount(): Int {return 3}override fun createFragment(position: Int): Fragment {return when(position) {0 - HomeFragment()1 - CategoryFragment()2 - ProfileFragment()else - Fragment()}}}} ?xml version1.0 encodingutf-8? LinearLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroidx.viewpager2.widget.ViewPager2android:idid/viewPagerandroid:layout_widthmatch_parentandroid:layout_height0dpandroid:layout_weight1 /com.google.android.material.tabs.TabLayoutandroid:idid/tabLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:tabIndicatorColorcolor/your_indicator_colorapp:tabSelectedTextColorcolor/your_selected_text_colorapp:tabTextColorcolor/your_default_text_colorapp:tabIconTintcolor/your_icon_tint_colorapp:tabModefixedapp:tabGravityfillapp:tabIndicatorHeight0dpapp:tabRippleColorandroid:color/transparent //LinearLayout resources......color nameyour_indicator_color#FF0000/colorcolor nameyour_selected_text_color#FF3700B3/colorcolor nameyour_default_text_color#FFBB86FC/colorcolor nameyour_icon_tint_color#FFBB86FC/color /resources 示意图
http://www.dnsts.com.cn/news/53629.html

相关文章:

  • 湖北公司网站备案严格吗英语网站海报手抄报怎么做
  • 做网站设像素做的比较好的购物网站
  • 北京网站建设及app设计师入驻平台
  • 网站字体使用沧州公司官网制作
  • 多种网站网站建设医药
  • 做h5的网站哪个好门户站模板
  • 网站开发+百度编辑器论坛型网站开发
  • 徐州做网站哪家好做wow宏的网站
  • 青岛网站设计品牌企业微网站模板源代码
  • 设计师网上接单的网站企业网页界面设计
  • 淘宝网站推广策划方案广州公司注册多久时间
  • 邮箱检测网站wordpress图片清理插件下载
  • 织梦模板大气网站建设类网站模板下载网站源代码生成网站
  • 学校如何报销网站开发费用html编辑器的特点
  • 学做网站基础知识网站建设平台官网要点有哪些
  • 东莞多语言网站建设微网站开发微网站建设
  • 昆山网站建设及推广平台公司债务风险
  • 提供邢台做wap网站开发网站需要用到的专业技术知识
  • 阿里云空间部署网站网站关键词 提醒
  • 网站动态和静态网和网站的区别
  • 免费网站安全软件下载安装品牌建设书籍
  • 禹城做网站的公司做网站有软件吗
  • 网站主机测速如何宣传推广自己的店铺
  • 娄底网站优化ss网站模板免费下载
  • 视频素材网站建设职业生涯规划大赛成长赛道
  • 深圳微商城网站制作公司青海汽车网站建设
  • 安徽省网站备案快吗迁西县住房和城乡规划建设局网站
  • 配置网站开发环境天津网站开发建设公司
  • 赣榆城乡建设局网站怎么自己做网站的步骤
  • 河西网站建设制作广州公司注册地址提供