android顶部导航高度,Android特效——————底部/顶部导航条(Fragment+ViewPaper+XTabLayout)...

初次使用xtablayout和viewpaper2.所以就弄了最基础的导航条

一、效果

4149083bdca510ffc7359b994100a5e0.gif

二、代码

配置环境【在bulid.gradle中添加以下代码】

implementation ‘androidx.viewpager2:viewpager2:1.0.0-alpha02‘implementation‘com.androidkun:XTabLayout:1.1.4‘

按钮点击切换图片【几个点击按钮图片,几个这样的布局】

主页布局代码

android:id="@+id/pagers"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:orientation="horizontal"/>

android:id="@+id/tab"android:layout_width="match_parent"android:layout_height="100dp"app:xTabMode="fixed"app:xTabTextSize="15sp"app:xTabTextColor="@color/colorThemeText"app:xTabSelectedTextColor="@color/colorTheme"app:xTabSelectedTextSize="20sp" />

xtablyout属性说明:

字体

xTabTextSize:默认按钮字体大小【未点击时】

xTabTextColor:默认字体颜色【未点击时】

xTabSelectedTextColor:选中时字体的大小

xTabSelectedTextSize:选中时的字体颜色

xTabTextSelectedBold="true":设置选中Tab的文本是否粗体显示app:xTabTextBold="true":设置未选中Tab的文本是否粗体显示

指示器设置xTabDisplayNum:设置屏幕内显示Tab个数xTabDividerWidthWidthText="true":设置指示器长度随文本改变xTabMode:设置按钮是否可以滑动【注意是按钮,不是页面】

背景色xTabBackgroundColor:默认按钮背景色xTabSelectedBackgroundColor:选中按钮背景色

分割线xTabDividerWidth:宽度xTabDividerHeight:高度xTabDividerColor:颜色xTabDividerGravity:是否居中

Fragement【都是这样,这里就显示一个】

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent">

android:text="第一页"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

主页Java代码

package com.example.mslinbill.main;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import androidx.fragment.app.Fragment;

import androidx.viewpager2.adapter.FragmentStateAdapter;

import androidx.viewpager2.widget.ViewPager2;

import android.os.Bundle;

import android.widget.Toast;

import com.androidkun.xtablayout.XTabLayout;

import com.example.mslinbill.R;

import com.example.mslinbill.fragment.SubPage_BookKeeping_Fragment;

import com.example.mslinbill.fragment.SubPage_Wages_Fragment;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

//XTabLayout

XTabLayout tab;

ViewPager2 pagers;

List list = new ArrayList<>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/**

* XTabLayout的操作

*/

//1.找到XTablayout

tab = findViewById(R.id.tab);

pagers =findViewById(R.id.pagers);

//2.动态添加内容,后面的图片,根据前面的图片选中设置

tab.addTab(tab.newTab().setText("第一页").setIcon(R.drawable.tab_bookkeep));

tab.addTab(tab.newTab().setText("第二页").setIcon(R.drawable.tab_wages));

//3.设置切换效果

tab.setOnTabSelectedListener(new XTabLayout.OnTabSelectedListener() {

//当前选中的Tab

@Override

public void onTabSelected(XTabLayout.Tab tab) {

//获取当前导航卡的位置及文本

int position = tab.getPosition();

pagers.setCurrentItem(position);

//提示词

Toast.makeText(MainActivity.this,position+"---"+tab.getText().toString(), Toast.LENGTH_SHORT).show();

}

//Tab没被选中的方法

@Override

public void onTabUnselected(XTabLayout.Tab tab) {

}

//Tab被重新选中的方法

@Override

public void onTabReselected(XTabLayout.Tab tab) {

}

});

//添加Fragement

addFragement();

pagers.setAdapter(new FragmentStateAdapter(getSupportFragmentManager()) {

@NonNull

@Override

public Fragment getItem(int position) {

return list.get(position);

}

//设置长度

@Override

public int getItemCount() {

return list.size();

}

});

//禁止滑动

// pagers.setUserInputEnabled(false);

/**

* 官方说法:添加回调

* 自我理解:连动按钮和页面

*/

pagers.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {

@Override

public void onPageSelected(int position) {

super.onPageSelected(position);

//设置指定位置上的导航块被选中

tab.getTabAt(position).select();

}

});

}

//添加Fragement

private void addFragement(){

//添加Fragment

list.add(new Fragment1());

list.add(new Fragment2());

}

}

Fragement代码

public class Fragment1 extends Fragment {

@Nullable

@Override

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

return inflater.inflate(R.layout.subpapge1 container, false);

}

}

原文:https://www.cnblogs.com/hahayixiao/p/13725960.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache JMeter 压试 HTTP接口

压测模拟100个用户连续发10次起请求 总请求数量线程数*循环次数1. 设置线程数 2. 查看服务端输出 3. 查看结果树 4. 查看聚合报告

Apache孵化器主席Justin Mclean:如何成为Apache顶级开源项目

近日&#xff0c;Apache孵化器主席、Apache基金会成员、Dubbo & RocketMQ等开源项目的导师Justin Mclean来到阿里巴巴西溪园区&#xff0c;与众多开发者分享了如何打造一个Apache顶级项目&#xff0c;以及项目孵化过程会遇到的一些盲点和挑战。 经Justin Mclean先生本人允…

正式开源TKE和TBase,腾讯正成为大数据领域开源最全面厂商

在11月6日召开的Techo开发者大会上&#xff0c;腾讯云副总裁、腾讯数据平台部总经理蒋杰博士正式对外披露腾讯大数据平台10年技术演进历程。 经过10年的积累&#xff0c;腾讯大数据平台的算力资源池目前已有超过20万台的规模&#xff0c;每天实时数据计算量超过30万亿条&#…

服务化改造实践(三) | Dubbo + Zipkin

随着业务的发展&#xff0c;应用的规模不断的扩大&#xff0c;传统的应用架构无法满足诉求&#xff0c;服务化架构改造势在必行&#xff0c;以 Dubbo 为代表的分布式服务框架成为了服务化改造架构中的基石。随着微服务理念逐渐被大众接受&#xff0c;应用进一步向更细粒度拆分&…

基于TableStore的亿级订单管理解决方案

一、方案背景 订单系统存在于各行各业&#xff0c;如电商订单、银行流水、运营商话费账单等&#xff0c;是一个非常广泛、通用的系统。对于这类系统&#xff0c;在过去十几年发展中已经形成了经典的做法。但是随着互联网的发展&#xff0c;以及各企业对数据的重视&#xff0c;…

mybatis-plus的 mapper.xml 路径配置的坑

mybatis-plus今天遇到一个问题&#xff0c;就是mybatis 没有读取到mapper.xml 文件。 #实体扫描&#xff0c;多个package用逗号或者分号分隔 mybatis-plus:typeAliasesPackage: com.gblfy.springboot.mybatisplus.entitymapper-locations:- classpath*:com/gblfy/springboot/*…

加速布局无服务器生态,腾讯云与Serverless.com达成全球战略合作!

在云计算技术领域&#xff0c;“Serverless&#xff08;无服务器&#xff09;”作为一种新型的软件设计架构正在快速崛起。作为继虚拟机、容器后的第三代通用计算平台&#xff0c;Serverless技术也一直是腾讯云原生的重点发力领域。 近日&#xff0c;在由腾讯云主办的首届Tech…

阿里云周源:一篇文章读懂四代视频加密技术演进

在刚刚圆满落幕的LiveVideoStackCon峰会上&#xff0c;阿里云高级技术专家周源进行了《视频加密和DRM的实施实践》主题分享。周源&#xff0c;有十多年音视频研发经验&#xff0c;之前在淘宝视频负责开放平台&#xff0c;目前在阿里云视频云部门负责媒体处理&#xff0c;在大规…

云原生数据库如何打造业务弹性

云计算带来了业务弹性上的极大优势&#xff0c;阿里云数据库高级产品专家时慢从应用架构的变迁&#xff0c;客户实战案例&#xff0c;业务分析等方面详细介绍POLARDB&#xff0c;及如何利用POLARDB设计互联网创新型应用的数据库架构。 应用架构的变迁——为什么我们需要超级MyS…

SpringMVC 集成 mybatisPlus

文章目录一、基础配置1. pom2. web.xml二、配置文件2.1.spring-context.xml2.2. spring-datasource.xml2.3. spring-mvc.xml2.4. jdbc.properties2.5. logback.xml三、基础类3.1. 实体类3.2. 接口类3.3. 接口映射xml3.4. service接口3.5. 接口实现类3.6. 控制层四、数据库方面4…

四大开源项目联合发布 腾讯已成Github全球贡献前十公司!

近日在Techo开发者大会上&#xff0c;腾讯正式对四大重点开源项目进行了联合发布&#xff0c;包括分布式消息中间件TubeMQ、基于最主流的 OpenJDK8开发的Tencent Kona JDK、分布式HTAP数据库 TBase&#xff0c;以及企业级容器平台TKEStack。 截至目前&#xff0c;腾讯已经在Gi…

实践 | Sentinel 扩展性设计

Sentinel 提供多样的 SPI 接口用于提供扩展的能力。用户可以在用同一个 sentinel-core 的基础上自行扩展接口实现&#xff0c;从而可以方便地给 Sentinel 添加自定义的逻辑。 初始化逻辑扩展机制 为了统一初始化的流程&#xff0c;我们抽象出了 InitFunc 接口代表 Sentinel 的…

android 各版本市占率,Android各版本市占率:果冻豆遥遥领先

近日&#xff0c;谷歌公布了最新Android系统各版本的市场占有率。虽说已发布两年之久且推出三个版本的果冻豆系统出现了小幅下滑&#xff0c;但60.8%的市占率依然遥遥领先其它各版本。Android各版本市占率&#xff1a;果冻豆遥遥领先(图片来源于cnbeta)从 谷歌统计数据显示&…

腾讯首度披露基础架构演进史:“海量之道”进化“生而为云”

近日腾讯Techo开发者大会在北京召开。会上腾讯云副总裁、云架构平台部总经理谢明首次对外披露了腾讯基础设施演进与创新历程。他介绍在微信、QQ等国民级业务不断发展的背后&#xff0c;包括服务器、网络、IDC、计算、存储、数据库等在内的基础设施和技术架构一直在不断进化&…

阿里云专家穆轩的《杭州九年程序员之“修炼”手册》

对于一个从未到过南方的内蒙汉子来说&#xff0c;北京的大学一直是中学时憧憬的殿堂&#xff0c;而离家上千公里浙江大学&#xff0c;则是从来没有考虑过的地方。机缘巧合之下&#xff0c;被一位年近七旬的浙大老师说服&#xff0c;我自此开始了南下“修炼”之旅。没想到转眼间…

主流开源开发者工具落地阿里云,进一步提升开发者体验

在云计算大数据时代&#xff0c;企业的不断上云&#xff0c;业务的不断发展&#xff0c;技术架构的不断演进&#xff0c;导致资源、应用和数据的管理成本不断增加&#xff0c;运维难度不断加大。业务场景的不断和复杂和变化&#xff0c;不得不引起我们更多的思考&#xff1a; …

SpringBoot 集成 mybatisPlus

文章目录一、1. pom2. application.yml3. dao层接口集成baseMapper4. 启动类上扫描5. 创建数据库6. 初始化表结构7. 浏览器验证8. 源码地址一、 1. pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/P…

让开发变得更简单 | 阿里云中间件推出全新开发者服务

要码出未来&#xff0c;除了程序员专属的节日福利&#xff0c;还需要实打实的为程序员解决手头的难题。 10月24日&#xff0c;阿里云中间件推出全新开发者服务&#xff0c;发布3款开发工具&#xff0c;包括Alibaba Cloud Toolkit 、链路追踪Tracing Analysis和应用高可用服务AH…

免费!这里有一份开发者进阶“宝典”求带走

戳蓝字“CSDN云计算”关注我们哦&#xff01;作为开发者&#xff0c;无论是前端还是后端&#xff0c;做机器学习还是云计算、架构&#xff0c;保持对技术的敏感性都是非常重要的事。新技术一般发源于人力、财力等各方面资源都很雄厚的大厂&#xff0c;经过时间的沉淀逐渐成为技…