android.support.design.widget.TabLayout的使用

Android底部和标签导航栏—TabLayout+Fragment 介绍Google官方在2014年Google I/O上推出了全新的设计语言——Material Design。一并推出了一系列实现Material Design效果的控件库——Android Design Support Library。其中,有TabLayout, NavigationView,Floating labels for editing text,Floating Action But 阅读详情

http://blog.youkuaiyun.com/chenguang79/article/details/49306339


 现在比较流行viewpager和fragment相结合一起使用,以前我们都是使用viewpager+fragment+第三方开源的PagerSlidingTabStrip来一起使用,来达到如下的效果:

 

         在Android 5.0之后,google把一些控件进行了集成,这里面就有一个新的控件TabLayout,它就可以完成上面的功能了。

         首先sdk的版本必须是22,要想使用这个控件,你必须下载或更新sdk的版本,你要更新的22也就是5.1的版本,才会有这个控件的出现。

         我们用一个例子来介绍一个这个控件:

         activity_main.xml文件

        

[html]  view plain  copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical">  
  6.   
  7.     <!--  
  8.         android design library提供的TabLayout控件  
  9.         tabIndicatorColor:菜单下方移动的横线的颜色  
  10.         tabSelectedTextColor :菜单被选中之后的颜色  
  11.         tabTextColor : 菜单正常的颜色  
  12.         app:tabTextAppearance : 添加样式,这里加了样式主要是为了在文字前面加一个图所用,就是把textAllCaps设置成false  
  13.     -->  
  14.     <android.support.design.widget.TabLayout  
  15.         android:id="@+id/tab_title"  
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="wrap_content"  
  18.         android:background="@color/titleBlue"  
  19.         app:tabIndicatorColor="@color/white"  
  20.         app:tabSelectedTextColor="@color/gray"  
  21.         app:tabTextColor="@color/white"  
  22.         app:tabTextAppearance="@style/tablayoutIcon"  
  23.         />  
  24.   
  25.   
  26.     <android.support.v4.view.ViewPager  
  27.         android:id="@+id/vp_pager"  
  28.         android:layout_width="fill_parent"  
  29.         android:layout_height="0dp"  
  30.         android:layout_weight="1"  
  31.         />  
  32.   
  33. </LinearLayout>  

       在TabLayout中我使用了color.xml和style.xml中的颜色和样式。下面把代码给大家

       color.xml

      

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <resources>  
  3.     <color name="white">#FFFFFF</color><!--白色 -->  
  4.     <color name="titleBlue">#4876FF</color><!--天兰色 -->  
  5.     <color name="gray">#808080</color><!--灰色 -->  
  6.     </resources>  

style.xml

[html]  view plain  copy
  1. style.xml  
  2.   <resources>  
  3.   
  4.     <!-- Base application theme. -->  
  5.     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">  
  6.         <!-- Customize your theme here. -->  
  7.     </style>  
  8.     <style name="tablayoutIcon" parent="TextAppearance.Design.Tab">  
  9.         <item name="textAllCaps">false</item>  
  10.     </style>  
  11. </resources>  

   显示的样子是这样的:

        在编写MainActivity.java之前,我们还要做几个准备工作,是什么呢,就是建立几个fragment用来显示,然后建立两个Adatper用来加载,为什么要用两个Adapter呢,这里说明一下,在使用viewpager的时候,我们可以在其中加载view也可以加载fragment,这里我们做两个,就是为了演示用一下。OK,下面建立三个fragment

       NewsFragment.java

      

[java]  view plain  copy
  1. import android.os.Bundle;  
  2. import android.support.annotation.Nullable;  
  3. import android.support.v4.app.Fragment;  
  4. import android.view.LayoutInflater;  
  5. import android.view.View;  
  6. import android.view.ViewGroup;  
  7.   
  8. /** 
  9.  * Created by cg on 2015/10/21. 
  10.  */  
  11. public class NewsFragment extends Fragment {  
  12.     @Nullable  
  13.     @Override  
  14.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
  15.         View view = inflater.inflate(R.layout.fragment_news, container, false);  
  16.         return view;  
  17.     }  
  18. }  

fragment_news.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent">  
  5.   
  6.     <TextView  
  7.         android:layout_width="fill_parent"  
  8.         android:layout_height="fill_parent"  
  9.         android:text="我是新闻fragment"  
  10.         android:textSize="20dp"  
  11.         android:gravity="center"/>  
  12.   
  13. </LinearLayout>  

非常简单的一段代码,就是为了显示一段文件。

另外两个SportsFragment和Funfragment和它一样,就是名字和里面的文字变了一下,我就不复制了。

 

现在看两个Adapter,为view服务的,我们叫它viewAdapter,代码如下:

viewAdapter.java 它继承PagerAdapter

[java]  view plain  copy
  1. import android.content.Context;  
  2. import android.graphics.drawable.Drawable;  
  3. import android.support.v4.view.PagerAdapter;  
  4. import android.support.v4.view.ViewPager;  
  5. import android.text.Spannable;  
  6. import android.text.SpannableString;  
  7. import android.text.style.ImageSpan;  
  8. import android.view.View;  
  9. import android.view.ViewGroup;  
  10.   
  11. import java.util.List;  
  12.   
  13. /** 
  14.  * 此adpter是在一个fragment中切换不同的view,好处是在一个activity中可以取得所有view中的值 
  15.  * Created by cg on 2015/10/21. 
  16.  */  
  17. public class viewAdapter extends PagerAdapter {  
  18.     public List<View> list_view;  
  19.     private List<String> list_Title;                              //tab名的列表  
  20.     private int[] tabImg;  
  21.     private Context context;  
  22.   
  23.     public viewAdapter(Context context,List<View> list_view,List<String> list_Title,int[] tabImg) {  
  24.         this.list_view = list_view;  
  25.         this.list_Title = list_Title;  
  26.         this.tabImg = tabImg;  
  27.         this.context = context;  
  28.     }  
  29.   
  30.     @Override  
  31.     public int getCount() {  
  32.         return list_view.size();  
  33.     }  
  34.   
  35.     @Override  
  36.     public boolean isViewFromObject(View view, Object object) {  
  37.         return view==object;  
  38.     }  
  39.   
  40.     @Override  
  41.     public Object instantiateItem(ViewGroup container, int position) {  
  42.         ((ViewPager) container).addView(list_view.get(position), 0);  
  43.         return list_view.get(position);  
  44.     }  
  45.   
  46.     @Override  
  47.     public void destroyItem(ViewGroup container, int position, Object object) {  
  48.         ((ViewPager) container).removeView(list_view.get(position));  
  49.     }  
  50.   
  51.     /** 
  52.      * 此方法是给tablayout中的tab赋值的,就是显示名称,并且给其添加icon的图标 
  53.      * @param position 
  54.      * @return 
  55.      */  
  56.     @Override  
  57.     public CharSequence getPageTitle(int position) {  
  58.   
  59.         //这段被注的代码,是只显示文字,不显示图标  
  60.         //return  list_Title.get(position % list_Title.size());  
  61.   
  62.         Drawable dImage = context.getResources().getDrawable(tabImg[position]);  
  63.         dImage.setBounds(0, 0, dImage.getIntrinsicWidth(), dImage.getIntrinsicHeight());  
  64.         //这里前面加的空格就是为图片显示  
  65.         SpannableString sp = new SpannableString("  "+ list_Title.get(position));  
  66.         ImageSpan imageSpan = new ImageSpan(dImage, ImageSpan.ALIGN_BOTTOM);  
  67.         sp.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  68.         return  sp;  
  69.     }  
  70.   
  71.   
  72. }  

fragmentAdapter.java 它继承自FragmentPagerAdapter

[java]  view plain  copy
  1. importandroid.support.v4.app.Fragment;  
  2.   
  3. importandroid.support.v4.app.FragmentManager;  
  4.   
  5. import android.support.v4.app.FragmentPagerAdapter;  
  6.   
  7.    
  8.   
  9. import java.util.List;  
  10.   
  11.    
  12.   
  13. /** 
  14.  
  15.  * 这里使用多个fragment进行切换,好处是每个fragment 都有自己独立的代码 
  16.  
  17.  * Created by cg on 2015/10/21. 
  18.  
  19.  */  
  20.   
  21. public class fragmentAdapter extendsFragmentPagerAdapter {  
  22.   
  23.    
  24.   
  25.    private List<Fragment> list_fragment;                         //fragment列表  
  26.   
  27.    private List<String> list_Title;                              //tab名的列表  
  28.   
  29.    
  30.   
  31.    public fragmentAdapter(FragmentManager fm,List<Fragment>list_fragment,List<String> list_Title) {  
  32.   
  33.         super(fm);  
  34.   
  35.         this.list_fragment = list_fragment;  
  36.   
  37.         this.list_Title = list_Title;  
  38.   
  39.    }  
  40.   
  41.    
  42.   
  43.    @Override  
  44.   
  45.    public Fragment getItem(int i) {  
  46.   
  47.         return list_fragment.get(i);  
  48.   
  49.    }  
  50.   
  51.    
  52.   
  53.    @Override  
  54.   
  55.    public int getCount() {  
  56.   
  57.         return list_fragment.size();  
  58.   
  59.    }  
  60.   
  61.    
  62.   
  63.    /** 
  64.  
  65.     * 此方法是给tablayout中的tab赋值的,就是显示名称 
  66.  
  67.     * @param position 
  68.  
  69.     * @return 
  70.  
  71.     */  
  72.   
  73.    @Override  
  74.   
  75.    public CharSequence getPageTitle(int position) {  
  76.   
  77.         return list_Title.get(position % list_Title.size());  
  78.   
  79.    }  
  80.   
  81. }  

下面我们来看一下,MainActivity.java这里面我加了详细的注解,这里就不多说了,直接看代码就OK了

[java]  view plain  copy
  1. import android.os.Bundle;  
  2. import android.support.design.widget.TabLayout;  
  3. import android.support.v4.app.Fragment;  
  4. import android.support.v4.view.ViewPager;  
  5. import android.support.v7.app.ActionBarActivity;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8.   
  9. import com.example.cg.tablayoutlearn.Adapter.fragmentAdapter;  
  10. import com.example.cg.tablayoutlearn.Adapter.viewAdapter;  
  11.   
  12. import java.util.ArrayList;  
  13. import java.util.List;  
  14.   
  15. public class MainActivity extends ActionBarActivity {  
  16.   
  17.   
  18.     private TabLayout tab_title;  
  19.     private ViewPager vp_pager;  
  20.   
  21.     private List<String> list_title;                                      //tab名称列表  
  22.     private List<View> listViews;  
  23.     private List<Fragment> list_fragment;  
  24.   
  25.     private View newsView;                                                //定义新闻页面  
  26.     private View sportView;                                               //定义体育页面  
  27.     private View funView;                                                 //定义娱乐页面  
  28.   
  29.     private viewAdapter vAdapter;                                         //定义以view为切换的adapter  
  30.     private fragmentAdapter fAdapter;                                     //定义以fragment为切换的adapter  
  31.   
  32.     private NewsFragment nFragment;  
  33.     private SportsFragment sFragment;  
  34.     private FunFragment fFragment;  
  35.   
  36.   
  37.     private int[] tabImg;  
  38.   
  39.     @Override  
  40.     protected void onCreate(Bundle savedInstanceState) {  
  41.         super.onCreate(savedInstanceState);  
  42.         setContentView(R.layout.activity_main);  
  43.   
  44.         initControls();  
  45.   
  46.         viewChanage();  
  47.   
  48.         //fragmentChange();  
  49.     }  
  50.   
  51.     /** 
  52.      * 初始化控件 
  53.      */  
  54.     private void initControls()  
  55.     {  
  56.         tab_title = (TabLayout)findViewById(R.id.tab_title);  
  57.         vp_pager = (ViewPager)findViewById(R.id.vp_pager);  
  58.   
  59.         //为tabLayout上的图标赋值  
  60.         tabImg = new int[]{R.drawable.ic_collected,R.drawable.ic_commented,R.drawable.ic_drawer_login_normal};  
  61.     }  
  62.   
  63.     /** 
  64.      * 采用在viewpager中切换 view 的方式,并添加了icon的功能 
  65.      */  
  66.     private void viewChanage()  
  67.     {  
  68.         listViews = new ArrayList<>();  
  69.         LayoutInflater mInflater = getLayoutInflater();  
  70.   
  71.         newsView = mInflater.inflate(R.layout.fragment_news, null);  
  72.         sportView = mInflater.inflate(R.layout.fragment_sport, null);  
  73.         funView = mInflater.inflate(R.layout.fragment_fun, null);  
  74.         listViews.add(newsView);  
  75.         listViews.add(sportView);  
  76.         listViews.add(funView);  
  77.   
  78.         list_title = new ArrayList<>();  
  79.         list_title.add("新闻");  
  80.         list_title.add("体育");  
  81.         list_title.add("娱乐");  
  82.   
  83.         //设置TabLayout的模式,这里主要是用来显示tab展示的情况的  
  84.         //TabLayout.MODE_FIXED          各tab平分整个工具栏,如果不设置,则默认就是这个值  
  85.         //TabLayout.MODE_SCROLLABLE     适用于多tab的,也就是有滚动条的,一行显示不下这些tab可以用这个  
  86.         //                              当然了,你要是想做点特别的,像知乎里就使用的这种效果  
  87.         tab_title.setTabMode(TabLayout.MODE_FIXED);  
  88.   
  89.         //设置tablayout距离上下左右的距离  
  90.         //tab_title.setPadding(20,20,20,20);  
  91.   
  92.         //为TabLayout添加tab名称  
  93.         tab_title.addTab(tab_title.newTab().setText(list_title.get(0)));  
  94.         tab_title.addTab(tab_title.newTab().setText(list_title.get(1)));  
  95.         tab_title.addTab(tab_title.newTab().setText(list_title.get(2)));  
  96.   
  97.   
  98.         vAdapter = new viewAdapter(this,listViews,list_title,tabImg);  
  99.         vp_pager.setAdapter(vAdapter);  
  100.   
  101.         //将tabLayout与viewpager连起来  
  102.         tab_title.setupWithViewPager(vp_pager);  
  103.     }  
  104.   
  105.     /** 
  106.      * 采用viewpager中切换fragment 
  107.      */  
  108.     private void fragmentChange()  
  109.     {  
  110.         list_fragment = new ArrayList<>();  
  111.   
  112.         nFragment = new NewsFragment();  
  113.         sFragment = new SportsFragment();  
  114.         fFragment = new FunFragment();  
  115.   
  116.   
  117.         list_fragment.add(nFragment);  
  118.         list_fragment.add(sFragment);  
  119.         list_fragment.add(fFragment);  
  120.   
  121.         list_title = new ArrayList<>();  
  122.         list_title.add("新闻");  
  123.         list_title.add("体育");  
  124.         list_title.add("娱乐");  
  125.   
  126.         fAdapter = new fragmentAdapter(getSupportFragmentManager(),list_fragment,list_title);  
  127.         vp_pager.setAdapter(fAdapter);  
  128.   
  129.         //将tabLayout与viewpager连起来  
  130.         tab_title.setupWithViewPager(vp_pager);  
  131.     }  
  132.   
  133.   
  134. }  

这里我们看一下效果图:

viewChanage()的显示




fragmentChange()的显示



顶
4
踩

Android控件-TabLayout使用介绍 TabLayout简述简单示例属性介绍tabIndicatorFullWidthtabRippleColortabTextAppearancetabModetabIndicatorColortabIndicatorHeighttabIndicatorGravity 简述 TabLayout是Android support中的一个控件android.support.design.widget.Tab... 阅读详情

相关推荐

MaterialDesign学习篇(四),如何使用TabLayout

什么是TabLayout上图中,我们可以看到,该页面分成三个页签,每个页签对应不同的内容,如果让我们来实现布局的话,我们会很容易地想到布局为一个页签指示器+ViewPager,以前,相信各位大多使用的是GitHub上的开源框架PagerSlidingTabTrip来实现指示器的效果,而如今,Android中也有自带这种指示器的控件TabLayout,TabLayout存在于Android Desig

Chay_Chan的博客 1652

TabLayout学习笔记(简介及进阶)(1)

【Android开发核心知识点笔记】【Android思维脑图(技能树)】【Android核心高级技术PDF文档,BAT大厂面试真题解析】【Android高级架构视频学习资源】《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!图片转存中…(img-LYYSqUd4-1712299588462)][外链图片转存中…(img-OfUbAlhi-1712299588462)][外链图片转存中…(img-jIZ6wPLK-1712299588463)]

2301_79985012的博客 783

为什么我的Win11家庭版找不到BitLocker?教你两种强制关闭加密的隐藏方法

本文解释了Win11家庭版为何缺少BitLocker功能,并提供了两种强制关闭加密的隐藏方法。通过注册表修改和PowerShell命令,用户可以调出隐藏的加密控制面板或直接操控加密引擎,解决家庭版设备加密的管理难题。

weixin_42535703的博客 1769

android.support.design.widget.TabLayout 使用

最近入职新公司,看到项目Tab标签用的是  Android Design Support Library 中的TabLayout 以前也没用过~趁机学习一波。 先来看看效果: 首先sdk的版本必须是22,要想使用这个控件,你必须下载或更新sdk的版本,你要更新的22也就是5.1的版本,才会有这个控件的出现。 一.对应的项目gradle下引入 compile 'com.andro

YRB的博客 4760

FOC-滑膜控制器SMC/滑膜观测器SMO

三相PMSM是一个非线性、强耦合的多变量控制系统,对于外界的扰动或者电机自身的参数发生变化时,传统的PI控制并不能满足实际的要求。因此可以引入滑模控制SMC,它对扰动和参数不敏感,响应速度也够快。简单来说就是,滑膜观测器就是通过采样与坐标变换得到的Ualpha,Ubeta,Ialpha,Ibeta四个参数值,获取。SMO叫滑膜观测器(Sliding Mode Observer),用于获取转子位置信息与转速信息。2、作为滑膜观测器SMO,获取电机角度与转速信息。之间的误差来设计滑膜观测器,并通过该误差。

小胡同学的工程师学习之路 1万+

【01】Canoe零基础手把手教学 --- Canoe安装

Canoe零基础手把手教学

jaytinlove的博客 7762

Android Material Design:滑动指示选项卡android.support.design.widget.TabLayout的简单使用

该TabLayout的功用,简单的说,就是当用户在该TabLayout的选项卡子item中选择触摸时候,文字和下方的指示器横条滑动指示。这个功能就是以前APP开发常用的选项卡某一卡片被切换、选中时候的效果。只不过现在Android官方SDK使之标准化。 要使用android.support.design.widget.TabLayout ,需要在自己的工程项目中引入Android的两个库,过程比

xzylx1的博客 1290

实战拆解:RAG vs Agent在金融风控中的性能对比

2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念

AI天才研究院 251

android.support.design.widget.TabLayout 用法解析

参考文章:android.support.design.widget兼容库 TabLayout可以用来在ActionBar的下方添加一行横向导航栏,通过点击导航栏上的按钮来操作窗口主要内容区域的切换,所以往往和viewPager一起使用。 新的TabLayout和ViewPager绑定到一起不再需要在设置TabListener和onPagerChangedListener,并且当Tab比较多的时

背负苍穹 4641

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(一)

CHB-MIT癫痫EEG脑电数据处理CHB-MIT头皮脑电图数据介绍CHB-MIT头皮脑电图数据下载CHB-MIT头皮脑电图数据处理提取原始数据滤波(0.1~50hz)数据分块(时间窗口) CHB-MIT头皮脑电图数据介绍 该数据库收集自波士顿儿童医院,其中包括患有难治性癫痫发作的儿科患者的脑电图记录。停用抗癫痫药物后最多持续几天对受试者进行监测,以表征其癫痫发作并评估其对手术干预的候选资格。 从22位受试者中收集了23个病例的记录(5例男性,3至22岁; 17例女性,1.5至19岁)。 (案例chb21是

AI_DOG的博客 1万+

SAP 财务快速记账之--科目分配模型(Account assignment model )

SAP FICO 运维解决方案

lijinbao171022的博客 1768

使用android.support.design.widget.TabLayout出现java.lang.reflect.InvocationTargetException

解决方法: 1.在res里面的Values里面的styles定制一个自己的colorPrimary 1 style name="MyAppTheme" parent="Theme.AppCompat.Light">style> 2.在AndroidManifest.xml里面使用自己的theme 参考地址:http://stackover

xzylx1的博客 716

备考路上的学习笔记:我的软考高级架构师复盘与更新计划

本专栏基于作者备考软考高级系统架构设计师的真实经验,分为考前突击、基础夯实、核心突破、案例实战和论文通关五大模块。内容涵盖计算机体系结构、操作系统、数据库等核心知识,提供案例解析和论文范文。作者承诺持续更新考纲内容、真题复盘及互动答疑,旨在帮助考生系统备考,将个人踩坑经验转化为实用指南,陪伴考生共同完成从知识碎片到体系构建的蜕变历程。

qq837993702的博客 2295

Android support.v7库中的几种控件,布局控件

android.support.v7,Toolbar,CardView,recyclerview。design库,TextInputLayout,FloatingActionButton,Snackbar,TabLayout,NavigationView,CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,

青芸的博客 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android TabLayout学习资料

TabLayout实战 http://blog.csdn.net/u014733374/article/details/46879265android.support.design.widget.TabLayout的使用 http://blog.csdn.net/chenguang79/article/details/49306339

wyyl1的专栏 495

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android tab 点击,TabLayout.Tab点击事件

1,大家都知道 android.support.design.widget.TabLayout 中的TabLayout并没有点击事件 只有addOnTabSelectedListener这个选中监听,今天遇到个问题,就是和照片墙组合使用,点击tab照片墙要滑动到相应的位置,滑动照片墙 要选中相应的tab ,用addOnTabSelectedListener这个监听的话 两边互相影响,就出问题了 ,...

weixin_34675395的博客 1197

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

使用material design组件遇到的一些问题

material design 包与自定义titlebar一起使用发生的冲突问题

Ares 1149

TabLayout占不满屏幕所有宽度

&lt;android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:ta...

zhizhuodewo6的博客 2556
上一篇: 文字中间加横线效果
下一篇: android中修改tablayout中的字体大小和颜色
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值