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万亿条&#…

浩鲸新智能解决方案工程师面试_【华为解决方案工程师面试题目|面试经验】-看准网...

1. 网申&#xff1a;其实华为网申基本不刷人的&#xff0c;认真填写基本没有问题。但是不是说不刷人&#xff0c;我身边有人网申没过&#xff0c;主要是因为专业太不对口&#xff0c;简历上也没有跟申请岗位相关的内容&#xff0c;另外六级成绩太低(当然这只是我们自己的猜想)。…

Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc

软件学院大作业任务书课程名称&#xff1a; Linux系统管理题 目&#xff1a; Linux系统管理期末大作业专 业&#xff1a;班 级&#xff1a;学 号&#xff1a;学生姓名&#xff1a;完成人数&#xff1a; 1人起讫日期&#xff1a;任课教师&#xff1a; 李荣鑫 职称&#xff1a;部…

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

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

pom.xml中添加阿里云Maven中央仓库配置

<repositories><!-- 代码库 --><repository><id>maven-ali</id><url>http://maven.aliyun.com/nexus/content/groups/public//</url><releases><enabled>true</enabled></releases><snapshots><en…

websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

Swoole学习笔记七&#xff1a;搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证2年前阅读 3678评论 0喜欢 0### 0、前言前面基本的WebSocket操作&#xff0c;我们基本都已经掌握了&#xff0c;接下来我们要学习的是怎么用user_id去关联一个fd凭证呢&#xff1f;按我们的思路应…

基于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…

Android 上滑背景变淡,在Android中,如何平滑地将背景从一种颜色淡化到另一种颜色? (如何使用线程)...

我已经玩了几个星期的Android编程&#xff0c;我正在尝试一些看起来很简单的工作&#xff0c;但我想我缺少一些东西。我想做的是让背景从白色到黑色平滑地退色。我已经尝试了一些事情&#xff0c;没有一个似乎工作。我做的第一件事是使用for循环和LinearLayout的setBackgroundC…

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

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

python程序员怎么做_资料篇:如何自学成为Python程序员

这篇文章是早两年首发其他论坛的&#xff0c;也在知乎回答用过。一直有读者私信我&#xff0c;说这篇文章很有帮助&#xff0c;所以我决定再抽取前篇的资料内容在专栏里。食用指南&#xff1a;1. 没有师傅&#xff0c;没有钱&#xff0c;但是具有一定的计算机理论基础的&#x…

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

云计算带来了业务弹性上的极大优势&#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…

android重新编译res,使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中lt;meta-datagt;变量的值...

你也能够查看我的其它同类文章。也会让你有一定的收货关于使用Gradle来控制版本号和生成不同版本号的代码。我总结了三篇文章&#xff0c;网上关于这些知识&#xff0c;都比較零散。我在学习这些的之前。根本不知道还有这种方法。所以说不知道并不可怕&#xff0c;可怕的是不知…

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

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

5W1H系列 | Nacos 帮我们解决什么问题?(配置管理篇)

Nacos 是阿里巴巴今年7月份开源的项目&#xff0c;如其名&#xff0c; Naming Configuration Service &#xff0c;专注于服务发现和配置管理领域。本系列文章&#xff0c;将从 5W1H&#xff08;What、Where、When、Who、Why、How&#xff09;全面剖析 Nacos&#xff0c;给大家…

tensorflow玻尔兹曼机_资源 | 10种深度学习算法的TensorFlow实现

原标题&#xff1a;资源 | 10种深度学习算法的TensorFlow实现选自 Github作者&#xff1a;blackecho机器之心编译参与&#xff1a;吴攀这个 repository 是使用 TensorFlow 库实现的多种深度学习算法的实现。这个软件包的目标是作为一种命令行实用程序——你可以将其用来快速训练…