怎么在Android中自定义视图和TabLayout实现顶部标签滑动效果

  介绍

怎么在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实现顶部标签滑动效果