澳门威利斯人_威利斯人娱乐「手机版」

来自 网络资讯 2020-03-12 03:39 的文章
当前位置: 澳门威利斯人 > 网络资讯 > 正文

TabLayout属性详解

澳门威斯尼人6613·com 1

废话少说直接上代码

上海教室是简书Android端的主页Tab,在别的的App中Tab也是很普及的,它的兑现情势也可以有比超多:TabHost,自定义控件,RadioGroup等等。这里关键介绍Android Design库中的TabLayout的接收。

布局xml

在源码中提交了TabLayout的定义:

<LinearLayout xmlns:android=""

TabLayout provides a horizontal layout to display tabs.

xmlns:app=""

情趣很明显:TabLayout提供了贰个水平的构造用来彰显Tabs。

android:layout_width="match_parent"

Design库:AS有一向的援用,假若是Eclipse这里提供贰个坦途-Design库

    android:layout_height="match_parent"

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

    android:orientation="vertical"

在清单文件中设置如下代码就可以:

    >

android:theme="@style/Theme.AppCompat"

<!--app:tabMode="fixed"fixed固定的,scrollable可滑动的-->

方式一:

<!--app:tabIndicatorColor="@android:color/holo_blue_light"下划线颜色-->

1.在结构中加入该控件:

<!--app:tabTextColor="@android:color/darker_gray"标具名体未入选颜色-->

<android.support.design.widget.TabLayout

android:

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<!--app:tabSelectedTextColor="@android:color/black"标具名体选中颜色-->

2.在代码中

<android.support.design.widget.TabLayout

tabLayout= (TabLayout) findViewById(R.id.tabLayout);

tabLayout.addTab(tabLayout.newTab().setText;

tabLayout.addTab(tabLayout.newTab().setText;

tabLayout.addTab(tabLayout.newTab().setText;

android:id="@ id/tabLayout"

3.显示效果

android:layout_width="match_parent"

澳门威斯尼人6613·com 2

android:layout_height="wrap_content"

感到尚可啊,挺轻松就落到实处了那么些UI效果。

app:tabIndicatorColor="@android:color/holo_blue_light"

方式二:

app:tabTextColor="@android:color/darker_gray"

<android.support.design.widget.TabLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<android.support.design.widget.TabItem

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tab1"/>

...

</android.support.design.widget.TabLayout>

app:tabSelectedTextColor="@android:color/black"

那样相近也能够兑现格局一的机能,但是独自那样并无法餍足大家。于是接下去看看有如何性质能够应用。

app:tabMode="fixed">

上边的Tab颜色感到不佳看,希图换换:

</android.support.design.widget.TabLayout>

1.更换选中字体的颜料

<android.support.v4.view.ViewPager

app:tabSelectedTextColor="@android:color/holo_orange_light"

android:id="@ id/viewPager"

2.改变未选中字体的颜料

android:layout_width="match_parent"

app:tabTextColor="@color/colorPrimary"

android:layout_height="0dp"

3.改成提醒器下标的水彩

android:layout_weight="1.0">

app:tabIndicatorColor="@android:color/holo_orange_light"

</android.support.v4.view.ViewPager>

4.更动整个TabLayout的颜色

</LinearLayout>

澳门威斯尼人6613·com,app:tabBackground="color"

MainActivity代码

于是今后自家的Tab产生了那几个样子:

package com.mycompany.myapp;

澳门威斯尼人6613·com 3

import android.app.*;

总以为那些字体有一些小了,于是想找办法把这些字变得大学一年级点,

import android.os.*;

肖似从没平昔变大的秘技,不过找到了那么些:

import android.support.v4.view.ViewPager;

app:tabTextAppearance="@android:style/TextAppearance.Holo.Large"//设置文字的形容

import android.support.v4.app.FragmentManager;

效果:

import android.support.design.widget.TabLayout;

澳门威斯尼人6613·com 4

import android.support.v7.app.AppCompatActivity;

既然字体变大了,提示器太小就显得不太难堪了,

import java.util.List;

安装提示器下标的莫斯科大学:

import java.util.ArrayList;

app:tabIndicatorHeight="4dp"

import android.support.v4.app.Fragment;

效果:

import android.support.design.widget.TabLayout.Tab;

澳门威斯尼人6613·com 5

import android.widget.Toast;

神蹟候Tab唯有文字以为稍稍单调了:

//世襲activity会报错因为用的5.0之后的特征须求v7包容包

tabLayout.addTab(tabLayout.newTab().setText.setIcon(R.mipmap.ic_launcher));

public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener

澳门威斯尼人6613·com 6

{

数量相当多的时候大家相应如何是好吧,简书中的第叁个Tab正是足以滑动的:

private ViewPager viewPager;

大家先多加多少个tab:

private TabLayout tabLayout;

tabLayout.addTab(tabLayout.newTab().setText;

tabLayout.addTab(tabLayout.newTab().setText;

tabLayout.addTab(tabLayout.newTab().setText;

tabLayout.addTab(tabLayout.newTab().setText;

private MyViewPagerAdapter viewPagerAdapter;

接下来设置属性为:

private String [] titles={"精选","排行","分类","游戏"};//顶端标签数组

app:tabMode="scrollable"

private List<Fragment> fragment=new ArrayList<Fragment>();//fragment集合

暗中同意是fixed:固定的,标签相当多时候会被挤压,不能滑动。

    @Override

功能如下:

    protected void onCreate(Bundle savedInstanceState)

澳门威斯尼人6613·com 7

    {

安装Tab内部的子控件的Padding:

        super.onCreate(savedInstanceState);

app:tabPadding="xxdp"

app:tabPaddingTop="xxdp"

app:tabPaddingStart="xxdp"

app:tabPaddingEnd="xxdp"

app:tabPaddingBottom="xxdp"

        setContentView(R.layout.main);

安装总体TabLayout的Padding:

initUI();

app:paddingEnd="xxdp"

app:paddingStart="xxdp"

app:tabGravity="center"//居中,要是是fill,则是充满

    }

安装最大的tab宽度:

private void initUI()

app:tabMaxWidth="xxdp"

{

安装最小的tab宽度:

viewPager = (ViewPager) findViewById(R.id.viewPager);

app:tabMinWidth="xxdp"

tabLayout = (TabLayout) findViewById(R.id.tabLayout);

TabLayout最早地方的偏移量:

//增强for

app:tabContentStart="100dp"

for (String tab:titles)

当选了有些tab的监听事件OnTabSelectedListener(State of Qatar:

{

tabLayout.setOnTabSelectedListener(newTabLayout.OnTabSelectedListener() {

@Override

public voidonTabSelected(TabLayout.Tab tab) {

//选中了tab的逻辑

}

@Override

public voidonTabUnselected(TabLayout.Tab tab) {

//未选中tab的逻辑

}

@Override

public voidonTabReselected(TabLayout.Tab tab) {

//再度选中tab的逻辑

}

});

//循环设置标签

最终也是最根本的:

tabLayout.addTab(tabLayout.newTab().setText(tab));

tabLayout.setupWithViewPager(Viewpager);

}

一行代码和ViewPager联合浮动起来,轻便狠毒。

//tablayout监听

澳门威斯尼人6613·com 8

tabLayout.setOnTabSelectedListener(this);

首要正是安装下标的惊人为0,相当于还未下标。

//注意增多顺序要与string数组中的标签对应

app:tabIndicatorHeight="0dp"

fragment.add(new JingXuanFragment());

然后设置背景颜色以致选粤语字颜色

fragment.add(new PaiHangFragment());

app:tabSelectedTextColor="#ff7a61"

app:tabBackground="#f6f4f2"//这里不可能一向写奥迪Q5GB,须求@color/xx

fragment.add(new FenLeiFragment());

谈到底设置Tab的格局:

fragment.add(new GameFragment());

app:tabMode="scrollable"

viewPagerAdapter=new MyViewPagerAdapter(getSupportFragmentManager(),titles,fragment);

自然Tablayout还足以做过多的体裁,假诺有关于Tablayout的注意事项也许有关文化的篇章,希望我们可以大饱眼福给自个儿,谢谢!

//ViewPager设置适配器

金口玉牙原理是setCustomView(卡塔尔(قطر‎加载自定义视图,来贯彻字体大小的变动,暗中认可的TabLayout不可能改善。

viewPager.setAdapter(viewPagerAdapter);

Design库-TabLayout仿京东商品详细情形Tab

//TabLayout与ViewPager创立关联

澳门威斯尼人6613·com 9

tabLayout.setupWithViewPager(viewPager);

tablayout.getTabAt.select();

}

/*现实调用能够透过吐司精晓*/

    //选中标签触发

@Override

public void onTabSelected(TabLayout.Tab tab)

{

本文由澳门威利斯人发布于网络资讯,转载请注明出处:TabLayout属性详解

关键词: 澳门威利斯人 详解 属性 Design 安卓复习资料