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

朋友要给我做网站大都会app官网最新

朋友要给我做网站,大都会app官网最新,云端互联网站建设,安徽电子健康卡小程序创建一个包含“首页”、“分类”和“我的”选项卡的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/234447.html

相关文章:

  • 深圳网站建设龙华新科定制制作网站价格
  • gif表情包在线制作网站抚州网站开发机构
  • 网站后台不能上传图片淮北刚刚发生的事
  • 泉州网站建设怎么收费企业邮箱注册需要多少钱
  • 网站付费推广渠道广州天华建筑设计有限公司
  • 如何推广网站话术wordpress添加文章目录
  • 盗版视频网站怎么做的建设网站报告
  • 石家庄建设厅网站四川网站开发制作
  • 城阳建设局网站福田区网络建设
  • 网站程序风格调用wordpress分类名称
  • 合肥专业做网站公司哪家好厦门企业自助建站
  • 营销网站案例什么意思校园微网站建设方案ppt模板
  • ps网站logo制作教程做网站需要用什么语言
  • 虚拟币网站建设仿新浪首页网站模板
  • 手机怎么安装网站程序外贸企业网站源码
  • 阿里巴巴怎么做网站优化方案数学2023版电子版
  • 东莞网站设计找哪里韩国最新新闻事件
  • 专业建站推广服务网站建设海淀区
  • 深圳专业做网站菜鸟网络属于哪个公司
  • 虚拟主机wordpress多站点站长之家查询域名
  • 安徽省交通建设股份有限公司网站网站开发旅游前台模板
  • 东莞网站的建设阿里企业邮箱登陆入口
  • 做网站时应该用什么软件六安seo公司选择8火星
  • 网站个人信息页面布局纺织品东莞网站建设
  • 静态网站有什么用南华大学城市建设学院网站
  • 想做个电影网站该怎么做可信赖的武进网站建设
  • 怎样选择高性价比的建站公司全球网站排行榜
  • 网站查询服务器公司装修深圳
  • 广西网站建设培训动画制作软件排行榜
  • 个人做百度云下载网站吗网站备案变更单位名称