TabLayout实现每个tab有一个不同的图片,选中改变图片
2016-09-23 19:48
471 查看
自定义tab,背景选择器
如下:
1、每个tab里面的图片的布局,使用textview,注意不能用button,也不能设置textview的clickable=”true”,否则tablayout就不能选择了
主界面:
背景选择器,我这有四个tab,每个的图片都不相同,但是格式相同,所以这里列出一个:
最后主界面代码:
//加载自定义的布局
for (int i = 0; i < 4; i++) {
TabLayout.Tab tab=mainTablayout.newTab();
View view= LayoutInflater.from(this).inflate(R.layout.main_top_layout,null);
TextView tv= (TextView) view.findViewById(R.id.main_tv);
tv.setBackgroundResource(bgs[i]);
tab.setCustomView(view);
if (i==0)
tv.setFocusable(true);
mainTablayout.addTab(tab);
监听事件,tab选中改变的时候,改变图片:
如图:
想要实现如上的方法,很简单:
搞定。
如下:
1、每个tab里面的图片的布局,使用textview,注意不能用button,也不能设置textview的clickable=”true”,否则tablayout就不能选择了
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:id="@+id/main_tv" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
主界面:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/main_tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/orange"/> </LinearLayout>
背景选择器,我这有四个tab,每个的图片都不相同,但是格式相同,所以这里列出一个:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@mipmap/ic_home_home_focus"/> <item android:state_selected="false" android:drawable="@mipmap/ic_home_home_normal"/> </selector>
最后主界面代码:
//加载自定义的布局
for (int i = 0; i < 4; i++) {
TabLayout.Tab tab=mainTablayout.newTab();
View view= LayoutInflater.from(this).inflate(R.layout.main_top_layout,null);
TextView tv= (TextView) view.findViewById(R.id.main_tv);
tv.setBackgroundResource(bgs[i]);
tab.setCustomView(view);
if (i==0)
tv.setFocusable(true);
mainTablayout.addTab(tab);
}
监听事件,tab选中改变的时候,改变图片:
mainTablayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { tab.getCustomView().findViewById(R.id.main_tv).setFocusable(true); } @Override public void onTabUnselected(TabLayout.Tab tab) { tab.getCustomView().findViewById(R.id.main_tv).setFocusable(false); } a0eb @Override public void onTabReselected(TabLayout.Tab tab) { } });
如图:
想要实现如上的方法,很简单:
搞定。
相关文章推荐
- android之ImageButton实现选中改变背景,附加(图片自动适配组件大小)
- gridview选中效果的实现,选中的改变背景。同时只有一个能被选中
- android之ImageButton实现选中改变背景,外加(图片自动适配组件大小)
- Android实现改变一个图片的像素值
- 实现:左边为菜单导航,当一个菜单中包含多个Tabs,并且不同的Tab要根据权限的不同显示。
- iOS UIButton文字和图片上下左右偏移封装,一个方法即可实现button上文字和图片不同位置的放置
- 一个点击 图片选中,改变图片样式, 传数据到后台的一个例子
- 安卓Android的TabActivity/TabHost实现每个Tab一个Activity(图标+文字)
- gridview如何实现单选的功能,(选中哪一个,那个颜色就改变。上一个的消失。)
- 如何实现在一个界面上点击不同的位置,会有跳转到不同的Activity上(假设背景是一个图片)
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片(可实现多张图片上传和预览移除)
- 选项卡js 改变图片的路径来实现点击和未点击的不同效果
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片
- android 在 button、textview等控件按下和选中的时候改变颜色或图片实现方法
- 1.6 给出一张图片,表示为NXN的居然,每个像素点为4字节。写一个函数实现将这张图片旋转90°。
- mfc的项目里,想要实现点击tabcontrol的每个tab,切换到不同窗口显示不同摄像头的实时画
- Hibernate继承映射--每个子类一个数据表的实现案例
- [讨论]一个关屏程序分别用c#.net cf 和 evc++实现的不同
- (JavaScript)实现在客户端动态改变Treeview节点的选中状态
- 在设计代码里实现绑定字段不同值显示不同图片的代码