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

郴州专业的网站建设赣州网站建设如何

郴州专业的网站建设,赣州网站建设如何,软件外包公司官网,成都seo外包前言 原生 TabLayout 的指示器长度是充满整个屏幕的,但在实际开发中 UI 会设计成 指示器的长度等于或者小于标题字体长度,如图 如果设置成跟字体长度一样即使用 API: mTabLayout.setTabIndicatorFullWidth(false);或者在 xml 布局文件中的TabLayout标签…

前言

原生 TabLayout 的指示器长度是充满整个屏幕的,但在实际开发中 UI 会设计成 指示器的长度等于或者小于标题字体长度,如图

如果设置成跟字体长度一样即使用 API:

mTabLayout.setTabIndicatorFullWidth(false);

或者在 xml 布局文件中的TabLayout标签设置:

 app:tabIndicatorFullWidth=“false”


但如果想要指示器长度小于字体长度(如上图),API并未提供相关方法,此时就需要我们自定义一个CustomTabLayout 继承 TabLayout,允许开发者自定义选项卡的颜色、字体以及背景等属性。

二、自定义 View

public class CustomTabLayout extends TabLayout {private List<String> titles;private int mSelectColor = getResources().getColor(R.color.white);private int mUnSelectColor = getResources().getColor(R.color.c_80ffffff);public CustomTabLayout(Context context) {this(context,null);}public CustomTabLayout(Context context, AttributeSet attrs) {this(context, attrs,0);}public CustomTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CustomTabLayout);mSelectColor = array.getColor(R.styleable.CustomTabLayout_select_color, mSelectColor);mUnSelectColor = array.getColor(R.styleable.CustomTabLayout_unselect_color, mUnSelectColor);array.recycle();init();}private void init() {titles = new ArrayList<>();this.addOnTabSelectedListener(new OnTabSelectedListener() {@Overridepublic void onTabSelected(Tab tab) {/*** 设置当前选中的Tab为特殊高亮样式。*/if (tab != null && tab.getCustomView() != null) {TextView tab_layout_text = tab.getCustomView().findViewById(R.id.tv_tab_layout);View vIndicator = tab.getCustomView().findViewById(R.id.v_indicator);vIndicator.setVisibility(VISIBLE);vIndicator.setBackgroundColor(mSelectColor);tab_layout_text.setTextColor(mSelectColor);}}@Overridepublic void onTabUnselected(Tab tab) {/*** 重置所有未选中的Tab颜色、字体、背景恢复常态(未选中状态)。*/if (tab != null && tab.getCustomView() != null) {TextView tab_layout_text = tab.getCustomView().findViewById(R.id.tv_tab_layout);View vIndicator = tab.getCustomView().findViewById(R.id.v_indicator);vIndicator.setVisibility(INVISIBLE);tab_layout_text.setTextColor(mUnSelectColor);}}@Overridepublic void onTabReselected(Tab tab) {}});}public void setTitle(List<String> titles) {this.titles = titles;/*** 开始添加切换的Tab。*/for (String title : this.titles) {Tab tab = newTab();tab.setCustomView(R.layout.item_custom_tablayout);if (tab.getCustomView() != null) {TextView text = tab.getCustomView().findViewById(R.id.tv_tab_layout);text.setText(title);text.setTextColor(mUnSelectColor);}this.addTab(tab);}}
}

相关属性

styleable 
    <declare-styleable name="CustomTabLayout"><attr name="select_color" format="color"/><attr name="unselect_color" format="color"/></declare-styleable>
item_custom_tablayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:paddingBottom="@dimen/dimen_5"android:gravity="center_horizontal"><TextViewandroid:id="@+id/tv_tab_layout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textStyle="bold"android:textColor="@color/c_80ffffff"android:textSize="@dimen/textsize_16"/><Viewandroid:id="@+id/v_indicator"android:layout_width="@dimen/dimen_30"android:layout_height="@dimen/dimen_3"android:visibility="invisible"android:layout_marginTop="@dimen/dimen_6"android:background="@color/white"/></LinearLayout>

使用方法

List<String> titles = new ArrayList<>();
titles.add("待签收");
titles.add("已签收");List<Fragment> mFragments = initFragments();
adapter = new ViewPaperAdapter(getSupportFragmentManager(), mFragments, titles);
mViewPager.setAdapter(adapter);mTabLayout.setTitle(titles);//Tablayout自定义view绑定ViewPager
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));

总结

如果对你有所帮助的话,不妨 点赞收藏
如果你有什么疑问的话,不妨 评论私信
青山不改,绿水长流 ,有缘江湖再见 ~

http://www.yayakq.cn/news/18863/

相关文章:

  • 商城网站制作 价格网站后台上传文字图片
  • 网站运营 策划 推广 维护苏州网站建设上往建站
  • 做好我局门户网站建设工作智能魔方网站
  • 专业的外贸网站建设公司余姚网
  • 网站做外链品牌排行榜哪个网站更权威
  • 崇川区城乡建设局网站龙华、宝安最新通告
  • 软件开发文档的重要性廊坊视频优化推广
  • 网站十大品牌成都自助建站软件
  • 村官 举措 村级网站建设怎么提交公司网站
  • 建设网站的颜色网站兼容浏览器服务
  • 网站建设 大纲wordpress 普通文本 quot
  • 网站不备案可以使用么南昌购物网站开发
  • 福州专业网站建设公司深圳做网站那家好
  • wordpress 设置站点地址?]后台的网站可以备案吗
  • php 公司网站源码wordpress media
  • 百度收录多的是哪些网站755权限 wordpress
  • 电子商务网站建设平台室内设计者联盟官网
  • 正能量不良网站推荐2020合肥本地网站
  • 教育网站制作下载常州酒店网站建设
  • 苏州做儿童场馆门票包票的网站商业规划设计公司
  • 微信开发者工具快捷键怎样优化网络速度
  • 关于动漫的网站建设宜宾市做网站多少钱
  • 网站标题修改微信小程序制作平台哪个好
  • 网站制作需要什么知识4399在线观看免费韩国
  • 网站开发报价明细家电网站建设
  • 东莞网站推广公司黄页滑县网站建设价格
  • 提供网站建设工具的品牌有哪些营销型网站建设申请域名时公司类型的域名后缀一般是?
  • 网站登陆口提交网站泸州市住房和城乡建设厅官方网站
  • h5自响应式网站模版wordpress点餐
  • seo网站推广专员直接可以秒玩的游戏