上效果图:

MiddleFragment.java 代码如下

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;、
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.gxuwz.yixin.R;
import java.util.List;
import java.util.Map;// 初中 Fragment
public class MiddleFragment extends Fragment {private View view;TabHost tabHost;String subjectArray[]; // 科目private List<Map<String,Object>> dataList;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {view = inflater.inflate(R.layout.fragment_middle,container,false);initView();tabHost.setup();//动态载入xmlinflater.inflate(R.layout.fragment_first_grade, tabHost.getTabContentView());inflater.inflate(R.layout.fragment_two_grade, tabHost.getTabContentView());initData();initEvent();initAdapter();return view;}public void initView() {subjectArray = getContext().getResources().getStringArray(R.array.subjects);tabHost = view.findViewById(android.R.id.tabhost);}public void initData() {tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(subjectArray[0]).setContent(R.id.tab01));tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator(subjectArray[1]).setContent(R.id.tab02));//设置 TabWidget 的布局参数final TabWidget tabWidget = tabHost.getTabWidget();// tabHost 选项卡改变的时候tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {@Overridepublic void onTabChanged(String tabId) {for(int i = 0; i < tabWidget.getChildCount(); i++) {View tabView = tabWidget.getChildAt(i);TextView tv= tabWidget.getChildAt(i).findViewById(android.R.id.title);if(tabHost.getCurrentTab() == i) { // 选中tabView.setBackgroundResource(R.drawable.tabhost_selected_true);tv.setTextSize(14);} else { // 未选中tabView.setBackgroundResource(R.drawable.tabhost_selected_false);tv.setTextSize(12);}}}});for (int i = 0; i < tabWidget.getChildCount(); i++) {View view = tabWidget.getChildAt(i);LinearLayout.LayoutParams layoutParams =  (LinearLayout.LayoutParams) view.getLayoutParams();// 设置默认的选项卡背景颜色与字体大小TextView textView = tabWidget.getChildAt(i).findViewById(android.R.id.title);//view.setBackgroundColor(R.color.grey2);textView.setTextSize(12);// 设置第一个选项卡被选中时的样式TextView tvDefault = tabWidget.getChildAt(0).findViewById(android.R.id.title);tabWidget.getChildAt(0).setBackgroundResource(R.drawable.tabhost_selected_true);tvDefault.setTextSize(14);//获取tabs图片;//ImageView iv=(ImageView)tabWidget.getChildAt(i).findViewById(android.R.id.icon);layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;layoutParams.height = 130;layoutParams.weight = 0.0f;}}public void initEvent() {}public void initAdapter() {}
}

fragment_middle 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".activity.MainActivity"><TabHostandroid:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentLeft="true"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><TabWidgetandroid:id="@android:id/tabs"android:layout_width="90dp"android:layout_height="match_parent"android:orientation="vertical"android:gravity="top"></TabWidget><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="match_parent"android:layout_height="match_parent" ></FrameLayout></LinearLayout></TabHost>
</RelativeLayout>

res/values/string.xml 中加入

<string-array name="subjects"><item>语文</item><item>数学</item>
</string-array>

选中的背景样式

tabhost_selected_true.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 连框颜色值 --><item android:height="110dp" android:gravity="center_vertical"><shape><solid android:color="@color/blue" /></shape></item><!-- 主体背景颜色值 --><item android:left="10px" ><!--边框里面背景颜色 白色--><shape><solid android:color="@color/white" /></shape></item>
</layer-list>

未选中的背景样式

tabhost_selected_false.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="@color/grey2"></solid>
</shape>

如果缺少哪一个文件,请在评论区留言

Android --- TabHost 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)相关推荐

  1. Android --- TabLayout 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)

    文章目录 一.前言 二.源码实例 1.选项卡所在的布局文件 `fragment_course_selection.xml` 2.选项卡所在类 `CourseSelectionFragment.java ...

  2. QT QTreeWidget 行切换时改变背景色

    文章目录 QT QTreeWidget 行切换时改变背景色 1.关联信号槽. 2.写信号槽函数: QT QTreeWidget 行切换时改变背景色 1.关联信号槽. 当QtreeWidget 的选中状 ...

  3. android 字体选中加粗,Android——TabLayout设置选中字体变大,加粗,透明度

    TabLayout自带没有设置选中时字体大小的属性,网上搜了好多基本都不生效,搞了一上午终于好使了,记个笔记记录下,布局要自己定义下,要不不好使. 布局中使用TabLayout的xml文件 andro ...

  4. Android——TabLayout设置选中字体变大,加粗,透明度

    TabLayout自带没有设置选中时字体大小的属性,网上搜了好多基本都不生效,搞了一上午终于好使了,记个笔记记录下,布局要自己定义下,要不不好使. 布局中使用TabLayout的xml文件 <c ...

  5. Android自定义控件实战——实现仿IOS下拉刷新上拉加载 PullToRefreshLayout

    下拉刷新控件,网上有很多版本,有自定义Layout布局的,也有封装控件的,各种实现方式的都有.但是很少有人告诉你具体如何实现的,今天我们就来一步步实现自己封装的 PullToRefreshLayout ...

  6. pythonxlwt行居中_python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)...

    # coding:utf-8 import patterns as patterns import xlwt import time i = 0 book = xlwt.Workbook(encodi ...

  7. HTML常用字体样式设置(加粗、下划线、斜体)

    有的时候,仅仅是价格要求,前面的符号小一点,后面的数字大一点,就没必要用SpannableString.用HTML简单处理即可 效果图: 代码实现: //加粗:<strong>222< ...

  8. linux调节字体大小加粗,Linux下修改终端字体颜色和大小

    方法一: 1.在~/.bash_profile文件中添加LS_COLORS export LS_COLORS='no=00:fi=00:di=01;33:ln=01;36:pi=40;33:so=01 ...

  9. Latex学习笔记 05 字体、字号以及加粗等字体风格设置

    字体(Front fammilies) 默认情况下,字体是Roman系列的字体.如果需要临时使用其他种类的字体,在overleaf里直接使用像如下的指令即可: In this example, a c ...

最新文章

  1. 实战 | 如何用最快的速度学会Dlib人脸识别开发?
  2. 3.1.6 OS之分页存储(页号、页偏移量等)
  3. 【计算机系统设计】实践笔记(4)改进数据通路:第一类I型指令分析与实现
  4. uniapp网络请求获取数据_2.uni-app 发起网络请求
  5. Git Flow分支管理
  6. 畅游互联的API接口如何对接到自己的网站上?
  7. 鸿蒙系统下载地址_华为鸿蒙代码全开源,老规矩:先跑个Hello World....
  8. c语言右上左下遍历数组,如何将一个数组的元素循环左移?
  9. 50岁开始学python_再过两年C语言就50岁了,这么老的编程语言怎么还没有过时?...
  10. 【c++】随机生成车牌号
  11. 电力-101/104规约基础2
  12. opencv c++ 检测红色HSV 和RGB
  13. 胡晓曼:MindSpore 开源运营与治理 | DEV. Together 2021 中国开发者生态峰会
  14. BZOJ1189 [HNOI2007]紧急疏散evacuate
  15. vant vant-list碰到的坑
  16. 智安网络丨居安思危·洞见未来 —— 智安网络安全周报
  17. 资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
  18. fedora17下nvidia双显卡闭源驱动的安装
  19. C语言:递归解决年龄问题(精细版)
  20. 混杂模式就安全了?--只谈配置混杂模式

热门文章

  1. [转]只让指定的机器连接SQLServer服务器
  2. System Analysic utility tools
  3. ffmpeg实现将MP4格式转封装成avi格式
  4. C++11判断inf, nan
  5. tcp连接探测Keepalive和心跳包
  6. Sublime3 搭建C/C++环境
  7. python dlib学习(五):比对人脸
  8. Android开源框架——内存泄漏检测工具 LeakCanary
  9. element手机验证格式_Excel数据验证:给数据把个关,工作效率有保障。
  10. aspx ttf文件加载不出来_加载页面信息,刷不出来心态都崩了