介绍
怎么在Android中自定义视图和TabLayout实现顶部标签滑动效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
主布局:fragment_message。xml
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; LinearLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" ,xmlns:应用=癶ttp://schemas.android.com/apk/res-auto" ,android:取向=皏ertical" ,android: layout_width=癿atch_parent" ,android: layout_height=癿atch_parent"祝辞 & lt; ! 应用程序才能:tabIndicatorHeight=? dp",指示器高度 应用程序才能:tabIndicatorColor=癅color/white",指示器颜色 应用程序才能:tabMode 默认是固定的:固定的,标签很多时候会被挤压,不能滑动。 ,,,,scrollable 可滑动伸缩式的 ,——比; & lt; android.support.design.widget.TabLayout android:才能id=癅 + id/fg_mg_tab" android:才能layout_gravity=癱enter" android:才能layout_width=癿atch_parent" android:才能layout_height=癅dimen/toolbar_height" android:才能背景=癅color/colorPrimary" 应用程序才能:tabIndicatorHeight=癅dimen/common_dimension_2" 应用程序才能:tabMode=癴ixed" android:才能fillViewport=癴alse" 应用程序才能:tabIndicatorColor=癅color/green1" 应用程序才能:tabTextAppearance=癅style/core_IconTabLayout" 应用程序才能:tabTextColor=癅color/white"/才能比; & lt; android.support.v4.view.ViewPager android:才能id=癅 + id/fg_mg_viewpager" android:才能layout_width=癿atch_parent" android:才能layout_height=癿atch_parent"比; ,& lt;/android.support.v4.view.ViewPager> & lt;/LinearLayout>
项布局:item_table_msg。xml
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; LinearLayout & lt; xmlns: android=癶ttp://schemas.android.com/apk/res/android" android:取向=癶orizontal" android: layout_width=皐rap_content" android:重力=癱enter_vertical" android: layout_height=皐rap_content"比; & lt; ImageView ,android: id=癅 + id/iv_msg_tab" ,android: src=https://www.yisu.com/zixun/癅drawable/ic_msg_find” android: scaleType=" centerInside " android: layout_width=" wrap_content " android: layout_height=" wrap_content "/>
适配器:MessagePagerAdapter
public class MessagePagerAdapter extends FragmentPagerAdapter { ,private final  List祝辞,mFragmentList =, new ArrayList<在(); ,private Context  mContext; ,public MessagePagerAdapter (Context mContext FragmentManager 调频),{ 超级才能(fm); 时间=this.mContext 才能;mContext; ,} ,public void  addFlag (Pair , msgTabBeanPair) { mFragmentList.add才能(msgTabBeanPair); ,} ,@Override ,public Fragment  getItem (int 位置),{ return 才能mFragmentList.get(位置)当代; ,} ,@Override ,public int  getCount (), { return 才能mFragmentList.size (); ,} ,public View  getTabView (int 位置,,ViewGroup mGroup) { View 才能;视图; view 才能=,LayoutInflater.from (mContext) .inflate (R.layout.view_table_msg mGroup,假); ImageView 才能;img =, view.findViewById (R.id.iv_msg_tab); TextView 才能;tv =, view.findViewById (R.id.tv_msg_tab); img.setImageResource才能(mFragmentList.get(位置).second.getResId ()); tv.setText才能(mFragmentList.get(位置).second.getTitle ()); return 才能;视图; ,} }
片段中进行设置:,,,,
mMessagePagerAdapter =, new MessagePagerAdapter (getActivity (), getActivity () .getSupportFragmentManager ()); mMessagePagerAdapter.addFlag才能(new Pair<祝辞(MsgFragmentFactory.getInstance () .getMsgCommListFragment (), new MsgTabBean(“通讯录“,R.drawable.ic_msg_comm_list))); mMessagePagerAdapter.addFlag才能(new Pair<祝辞(MsgFragmentFactory.getInstance () .getMsgCrowdFragment (), new MsgTabBean(“群聊“,R.drawable.ic_msg_crowd))); mMessagePagerAdapter.addFlag才能(new Pair<祝辞(MsgFragmentFactory.getInstance () .getMsgConverFragment (), new MsgTabBean(“消息“,R.drawable.ic_msg_conver))); null null null null null null null null null怎么在Android中自定义视图和TabLayout实现顶部标签滑动效果