国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 自定義View結合自定義TabLayout實現頂部標簽滑動效果

2019-10-21 21:48:31
字體:
來源:轉載
供稿:網友

最近需要做一個app,需要用到tablayout實現頂部的滑動,用到了自定義item,不過沒有用到tabitem,貼出來供大家學習,先看圖吧,覺得滿意的繼續往下面看

Android,自定義View,TabLayout,標簽滑動

具體代碼實現:

我直接貼啦,能說的不多

主布局: fragment_message.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!--  app:tabIndicatorHeight="1dp" 指示器高度  app:tabIndicatorColor="@color/white" 指示器顏色  app:tabMode 默認是fixed:固定的,標簽很多時候會被擠壓,不能滑動。     scrollable 可滑動伸縮式的 --> <android.support.design.widget.TabLayout  android:id="@+id/fg_mg_tab"  android:layout_gravity="center"  android:layout_width="match_parent"  android:layout_height="@dimen/toolbar_height"  android:background="@color/colorPrimary"  app:tabIndicatorHeight="@dimen/common_dimension_2"  app:tabMode="fixed"  android:fillViewport="false"  app:tabIndicatorColor="@color/green1"  app:tabTextAppearance="@style/core_IconTabLayout"  app:tabTextColor="@color/white"  /> <android.support.v4.view.ViewPager  android:id="@+id/fg_mg_viewpager"  android:layout_width="match_parent"  android:layout_height="match_parent"> </android.support.v4.view.ViewPager></LinearLayout>

item布局: item_table_msg.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="wrap_content"android:gravity="center_vertical"android:layout_height="wrap_content"><ImageView android:id="@+id/iv_msg_tab" android:src="@drawable/ic_msg_find" android:scaleType="centerInside" android:layout_width="wrap_content" android:layout_height="wrap_content" /><TextView android:layout_marginLeft="@dimen/common_dimension_2" android:id="@+id/tv_msg_tab" android:textColor="@color/white" android:text="會話" android:textSize="@dimen/SmallerTextSize" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>

適配器:MessagePagerAdapter

public class MessagePagerAdapter extends FragmentPagerAdapter { private final List<Pair<BaseFragment,MsgTabBean>> mFragmentList = new ArrayList<>(); private Context mContext; public MessagePagerAdapter(Context mContext,FragmentManager fm) {  super(fm);  this.mContext = mContext; } public void addFlag(Pair<BaseFragment,MsgTabBean> msgTabBeanPair){  mFragmentList.add(msgTabBeanPair); } @Override public Fragment getItem(int position) {  return mFragmentList.get(position).first; } @Override public int getCount() {  return mFragmentList.size(); } public View getTabView(int position, ViewGroup mGroup){  View view;  view = LayoutInflater.from(mContext).inflate(R.layout.view_table_msg,mGroup,false);  ImageView img = view.findViewById(R.id.iv_msg_tab);  TextView tv = view.findViewById(R.id.tv_msg_tab);  img.setImageResource(mFragmentList.get(position).second.getResId());  tv.setText(mFragmentList.get(position).second.getTitle());  return view; }}

Fragment中進行設置:    

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)));  mMessagePagerAdapter.addFlag(new Pair<>(MsgFragmentFactory.getInstance().getMsgFindFragment(),new MsgTabBean("發現",R.drawable.ic_msg_find)));  mFgMgViewpager.setAdapter(mMessagePagerAdapter);  mFgMgTab.setupWithViewPager(mFgMgViewpager);  for (int index =0 ;index<mMessagePagerAdapter.getCount();index++){   mFgMgTab.getTabAt(index).setCustomView(mMessagePagerAdapter.getTabView(index,mFgMgTab));  }  mFgMgViewpager.setOffscreenPageLimit(mMessagePagerAdapter.getCount());  mFgMgViewpager.setCurrentItem(3); }

總結

以上所述是小編給大家介紹的Android 自定義View結合自定義TabLayout實現頂部標簽滑動效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 千阳县| 岫岩| 汝城县| 石嘴山市| 天台县| 马山县| 晋城| 芦山县| 白河县| 和平县| 大城县| 渭南市| 铜川市| 赣榆县| 邛崃市| 八宿县| 花莲市| 皮山县| 焦作市| 莱阳市| 五寨县| 会东县| 福安市| 外汇| 新丰县| 峨眉山市| 丹凤县| 宕昌县| 股票| 曲周县| 静宁县| 临海市| 若尔盖县| 焦作市| 陈巴尔虎旗| 肇源县| 乌鲁木齐市| 株洲县| 栾城县| 连江县| 宁明县|