浅析使用TabLayout做底部栏的例子

很多时候我们一般使用TabHost或者Fragment来做底部栏部分,但是现在有了TabLayout我们可以更容易的达到我们需要的效果,通过TabLayout可以做成微信那种底部可以滑动的效果,也可以做成点击的效果,下面说一下我做的点击效果的底部栏。先贴上布局

 代码如下 复制代码

<com.flyco.tablayout.CommonTabLayout
android:id="@+id/tl_3"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="#ffffff"
tl:tl_iconGravity="LEFT"
tl:tl_iconHeight="49dp"
tl:tl_iconMargin="5dp"
tl:tl_iconWidth="49dp"
tl:tl_indicator_bounce_enable="false"
tl:tl_indicator_gravity="TOP"
/>

通过简单的属性设置就可以达到效果,然后在这个布局上加一个FrameLayout就ok,

 

 代码如下 复制代码
public class main extends FragmentActivity {
private Context context = this;
private ArrayList<Fragment> fragments = new ArrayList<>();
private int[] iconUnselectIds = {//底部点击时显示的图标
R.mipmap.icon_indexl_nav_home_gary, R.mipmap.icon_indexl_nav_shopcar_gary,
R.mipmap.icon_indexl_nav_inquiry_gary};
private int[] iconSelectIds = {//未点击时显示的图标
R.mipmap.icon_index_nav_home_yellow, R.mipmap.icon_indexl_nav_shopcar_yellow,
R.mipmap.icon_indexl_nav_inquiry_yellow};
private ArrayList<CustomTabEntity> tabs = new ArrayList<>();
private CommonTabLayout tl_3;
View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
 
}
private void initView(){
//底部栏三个按钮对应的Fragment
fragments=new ArrayList<Fragment>();
fragments.add(new text1());
fragments.add(new text2());
fragments.add(new text3());
for (int i = 0; i < 3; i++) {//给底部栏加入图标
tabs.add(new entity(null, iconSelectIds[i], iconUnselectIds[i]));
}
view=getWindow().getDecorView();
tl_3=ViewFindUtils.find(view, R.id.tl_3);
tl_3.setTabData(tabs, getSupportFragmentManager(), R.id.fl_change, fragments);
 
tl_3.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelect(int position) {
 
}
 
@Override
public void onTabReselect(int position) {
 
}
});
}
 
}

这是我在github中看到的案例,经过修改后非常符合自己的要求,简短的代码就可以完成我们的要求。大家有兴趣的可以去github上多看看这方面的。

时间: 2024-08-26 11:12:54

浅析使用TabLayout做底部栏的例子的相关文章

Android design包自定义tablayout的底部导航栏的实现方法

以前做项目大多用的radiobutton,今天用tablayout来做一个tab切换页面的的效果. 实现的效果就是类似QQ.微信的页面间(也就是Fragment间)的切换.如图: 布局只要一个tablayout <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id=&

link中做四分栏,希望如果结果不足,用空白填空,请问这个怎么实现?

问题描述 link中做四分栏,希望如果结果不足,用空白填空,请问这个怎么实现? link中做四分栏,希望如果结果不足,用空白填空,缺一个就补一个,缺两个就补两个,请问这个怎么实现? 解决方案 var query = dt.Concat(Enumerable.Repeat(4 - dt.Count() % 4, 默认的对象))

wp-用WP做导航栏(调用/显示)一个菜单(要显示多个),求解!求代码!谢谢!

问题描述 用WP做导航栏(调用/显示)一个菜单(要显示多个),求解!求代码!谢谢! <div class="tel"></div> </div> <div class="nav"> <?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?> </div>

Gridview行上下移动自己做的一个小例子(第一种方法)

今天没有什么事做,就写了一个GridView行上下移动的小例子. 方法有好多种,我先写第一种. 没有什么技术含量 思路: 把要上移或下移的id 与它的临近行的id进行互换 效果: 前台页面: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView2.aspx.cs" Inherits="WebApplication3.GridView2"

用CSS做圆角的一个例子

css|圆角 HTML代码<!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="//www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Ty

福星:浅析利用seo做单页淘宝客的优缺点

时下,淘宝客是网上赚钱的主流模式,越来越多的网赚一族加入淘宝客的推广行列,这从上个月腾讯科技频道报道的一项数据也可以得出,报道中提到现在通过淘宝联盟产生的日交易额突破了3600万,合作伙伴分成达到了350万,有这样的成绩和站长们的努力是分不开的. 因为新浪,百度,人人网等大型的流量平台封杀淘宝客的链接,现在主流的做淘宝客的方式,就是通过seo优化单品的淘宝客站,比如去年最流行的,最多人做的XX产品排行榜,XX产品哪种好,等等这类的网站,百度上搜索这类关键字,排名前十页的基本都是这种站.因为单页面

浅析新站做SEO的三大要点

大家好,我是湖南SEO的kiness.小编几天分享下新站做SEO的几个要点以及如何操作,主要从网站关键字定位.网站结构设计.更新内容的方法三个方面进行分析.对新站而言,要想在搜索引擎几十万.百万甚至上千万的结果中超越老站,跻身首页,谈何容易!小编的小站湖南推是如何在16天做到三个关键字位居百度首页的呢?站长大都知道SEO的概念,但是真正理解了且贯彻实施的却是连十之一二都不到,故小编就以下四点进行讲解,希望对新手站长能起到一个激励的作用. 一.网站关键字的定位. 新站上线之前就必须就网站面对的群体

浅析:新手做站经验小结

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 1.域名选择较短,通俗,容易记的,这样人家下次还记得来.找个空间稳定的,最好上面垃圾站不要太多,可以用http://whois.webhosting.info查询,网站定位刚开始要准确,从小做起,不要一下做得象门户.一个人是没有那个能力,除非你很牛.我是不行的 2.刚建站资料不需要太多,慢慢加进去,每天加一点. 3.原创性的文章多一点,如果不

做一Remoting的例子发布不成功大家看看

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.Remoting.Channels;usingSystem.Runtime.Remoting.Channels.Tcp;namespaceWrox.ProCSharp.Remoting{publicclassHelloClient{[STAThread]publicstaticvoidMain(string[]args){Ch