Android使用TabLayout实现选项卡
来源:互联网 发布:施工网络进度计划 编辑:程序博客网 时间:2024/05/20 19:28
使用TabLayout实现一个选项卡效果,之前一直自定义ViewGroup实现,今天之间用的Google框架,给我的感觉就是方便!
先上效果图:
内容区域使用的ViewPager,导航条使用的TabLayout
TabLayout在android.support.design包下,使用AS的同学记得先导入下
布局使用的线性布局:挺简单的,不多说了。
<android.support.design.widget.TabLayout android:id="@+id/id_tl_tabs" style="@style/myTabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff" /> <android.support.v4.view.ViewPager android:id="@+id/id_vp_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/>
给Tablayout设置了一个Style,Style中设置一下TabLayout的基本样式
<!-- 使用Style设置滚动条样式--> <style name="myTabLayout" parent="Widget.Design.TabLayout"> <!--tab的布局--> <item name="tabGravity">fill</item> <!--tab下面的滚动条的颜色--> <item name="tabIndicatorColor">#ff3355</item> <!--将tab设置成固定--> <item name="tabMode">fixed</item> </style>
注意,要是直接使用属性的话,需要引入"http://schema/android.com/apk/res-auto“”这个命名空间
下面是代码部分
public class MainActivity extends FragmentActivity { private ViewPager mVpContainer; private TabLayout mTvTabs; private Fragment[] mFragments = new MyFrag1[]{ new MyFrag1(1), new MyFrag1(2), new MyFrag1(3) }; private String[] mTitles = new String[]{ "Tab1", "Tab2", "Tab3" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mVpContainer = (ViewPager) findViewById(R.id.id_vp_container); mTvTabs = (TabLayout) findViewById(R.id.id_tl_tabs); // 设置与Fragment的关联 mVpContainer.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return mFragments[position]; } @Override public int getCount() { return mFragments.length; } @Override // 设置与TAB的关联 public CharSequence getPageTitle(int position) { return mTitles[position]; } }); // 设置与ViewPager的关联 mTvTabs.setupWithViewPager(mVpContainer); }}
Fragement
随便写了个Fragment用作测试
public class MyFrag1 extends android.support.v4.app.Fragment { private int index; public MyFrag1() { super(); } public MyFrag1(int index) { super(); this.index = index; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView tv = new TextView(getContext()); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT , ViewGroup.LayoutParams.WRAP_CONTENT); tv.setText("Fragment "+index); return tv; }}
好了,这样一个选项卡就完成了,是不是比自定义ViewGroup简单呢
0 0
- Android使用TabLayout实现选项卡
- Android——TabLayout实现选项卡
- 使用TabLayout 实现顶部选项卡功能
- Android选项卡TabLayout简单使用
- 使用Android Support Design 控件TabLayout 方便快捷实现选项卡功能
- android学习-----使用TabLayout实现Tab选项卡以及遇到的一些问题(一)
- android学习-----使用TabLayout实现Tab选项卡以及遇到的一些问题(二)
- Android开发之TabLayout的使用(实现三种常用的选项卡效果)
- 使用TabLayout和ViewPager实现左右滑动选项卡
- Tablayout+Fragment顶部选项卡实现
- TabLayout+Fragment实现顶部选项卡
- 总结项目使用一个TabLayout选项卡
- Android Material Design:滑动指示选项卡android.support.design.widget.TabLayout的简单使用
- Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
- Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
- Android用TabLayout实现类似网易选项卡动态滑动效果
- Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
- Android用TabLayout实现类似网易选项卡动态滑动效果
- centos6.5实践(1):基础配置
- synchronized的使用方法(1)
- 机房重构之DataTable转泛型
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- 深度学习之-caffe预测、特征可视化python接口调用 (6)
- Android使用TabLayout实现选项卡
- Maven项目中不打包 *.hbm.xml 映射文件
- CSS3.0入门笔记(二)
- Hibernate入门(四)之hibernate中session的创建方式
- 在Node.js中实现任务调度与执行
- 大话设计模式-桥接模式
- synchronized的使用方法(2)
- JDK安装与环境变量配置
- poj 3278 bfs