使用Tablayout实现安卓导航栏效果
2017-11-17 16:43
375 查看
在2015年的google大会上,google发布了新的Android Support Design库,tablayout控件就是其中一个,就是来实现导航栏效果的,它可以兼容到2.2以上版本,包括2.2. 毕竟是官方发布的,至此实现导航栏我们有了新的选择
先看效果图:
![](https://img-blog.csdn.net/20171117161456169?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc3NjEzMDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
以上就可以实现简单的导航栏效果了,下面我们介绍一下tablayout的属性详解
最后提供本文github地址,有需要的可自行下载: https://github.com/787060894/TabLayoutDemo
先看效果图:
使用方法:
添加依赖###
compile 'com.android.support:design:25.3.1'
layout/activity_main.xml布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.panku.zhengtest.tablayoutdemo.MainActivity"> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="60dp" app:tabBackground="@color/beijing" app:tabIndicatorColor="@color/colorPrimary" app:tabSelectedTextColor="@color/colorPrimary" app:tabTextAppearance="@style/Base.TextAppearance.AppCompat.Large" app:tabTextColor="#000000"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"></android.support.v4.view.ViewPager> </LinearLayout>
values/colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="beijing">#f9f6e8</color> </resources>
Activity代码
package com.panku.zhengtest.tablayoutdemo; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import butterknife.Bind; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { @Bind(R.id.tab_layout) TabLayout tabLayout; @Bind(R.id.viewpager) ViewPager viewpager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); //初始化配置信息 initConfig(); //初始化数据 initData(); //设置设配器 viewpager.setAdapter(new MyAdapter()); } private void initConfig() { //tablayout和viewpager关联 tabLayout.setupWithViewPager(viewpager); } private ArrayList<View> mList; private String[] mTitle = new String[]{"首页", "分类", "寻找", "个人"}; private void initData() { View viewpagerA = getLayoutInflater().inflate(R.layout.viewpager_a, null); View viewpagerB = getLayoutInflater().inflate(R.layout.viewpager_b, null); View viewpagerC = getLayoutInflater().inflate(R.layout.viewpager_c, null); View viewpagerD = getLayoutInflater().inflate(R.layout.viewpager_d, null); mList = new ArrayList<>(); mList.add(viewpagerA); mList.add(viewpagerB); mList.add(viewpagerC); mList.add(viewpagerD); } @Override protected void onDestroy() { super.onDestroy(); ButterKnife.unbind(this); } class MyAdapter extends PagerAdapter { @Override public int getCount() { return mList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = mList.get(position); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public CharSequence getPageTitle(int position) { return mTitle[position]; } } }
以上就可以实现简单的导航栏效果了,下面我们介绍一下tablayout的属性详解
app:tabMode="scrollable" //可滑动 app:tabMode="fixed" //固定的 app:tabIndicatorHeight= 9f1b "2dp" //下划线高度 app:tabIndicatorColor="@color/colorPrimary" //下划线颜色 app:tabSelectedTextColor="#3F51B5" // 选择的Tab的文字颜色 app:tabTextColor="#000000" // 未选择的Tab文字颜色 app:tabTextAppearance="@style/Base.TextAppearance.AppCompat.Large" // 文字样式 app:tabBackground="@color/colorPrimary" //背景 //标签距离 app:tabPaddingStart="10dp" app:tabPaddingBottom="10dp" app:tabPadding="10dp" app:tabPaddingEnd="10dp" app:tabPaddingTop="10dp" //对齐方式 app:tabGravity="center" //居中 app:tabGravity="fill" //填充 app:tabContentStart="50dp" //偏移 从左边开始偏移距离, 必须是可滑动的模式 scrollable //标签宽度限制 app:tabMaxWidth="50dp" //最大宽度 app:tabMinWidth="100dp" //最小宽度
最后提供本文github地址,有需要的可自行下载: https://github.com/787060894/TabLayoutDemo
相关文章推荐
- 使用TabLayout+ViewPager+Fragment+DataBing实现仿网易新闻主界面效果
- 使用TabLayout快速实现一个导航栏
- 使用android support library中的tablayout实现页签切换效果出现的问题
- Android开发笔记之TabLayout实现导航栏的效果
- 【Android】安卓开发实战之使用Fragment(碎片)实现底部导航栏效果
- 安卓(Android)ViewPager+TabLayout实现图片轮播效果
- 使用TabLayout快速实现一个导航栏
- [置顶] Android开发之TabLayout的使用(实现三种常用的选项卡效果)
- 十分牛逼的TabLayout+Toolbar+ViewPager实现各种导航栏效果
- Tablayout和Viewpager的结合使用,实现导航的效果
- 使用TabLayout实现仿今日头条的导航页效果
- 使用TabLayout快速实现一个导航栏
- Android使用TabLayout、ViewPage和Fragment实现导航条的效果
- 使用TabLayout快速实现一个导航栏
- [AS2.3.3]使用TabLayout+ViewPager实现滚动导航栏
- 使用XTablayout实现横向滑动菜单,可以设置文字下面导航栏的宽度
- 安卓 TabLayout+ViewPager实现滑动Tab效果
- 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
- Android 使用DrawerLayout实现抽屉效果的导航菜单
- 使用Fragment实现Tab效果