懸浮控制元件之Tablayout
阿新 • • 發佈:2019-01-06
1、佈局檔案
<?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:id="@+id/db" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayoutxmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <com.youth.banner.Banner xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/banner" app:indicator_drawable_selected="@mipmap/navpoint_selected2x" app:indicator_drawable_unselected="@mipmap/navpoint_unselected2x" app:indicator_width="20px" android:layout_width="match_parent" android:layout_height="260px" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <com.zhy.autolayout.AutoLinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.design.widget.TabLayout android:id="@+id/tablayout_snatch" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@color/red" app:tabMode="fixed" app:tabTextAppearance="@android:style/TextAppearance.Holo.Large" app:tabSelectedTextColor="@color/red" app:tabTextColor="#000" /> <!--app:tabTextAppearance="@style/TabLayoutTextStyle"--> <com.han.onermb.views.NoScrollViewPager android:id="@+id/vp_snatch" android:layout_width="match_parent" android:layout_height="wrap_content" /> </com.zhy.autolayout.AutoLinearLayout> </android.support.design.widget.CoordinatorLayout> </LinearLayout> 2viewpager介面卡
importandroid.support.v4.app.FragmentPagerAdapter; import com.han.onermb.fragment.FragmentPage; /** * Created by 韓永光 * on 2017/2/8 11:27. */ public class Adapter extends FragmentPagerAdapter { private final Context context; private String[] titles = new String[]{"最熱", "最新", "最快", "高價", "低價"}; public Adapter(FragmentManager fm, Context context) { super(fm); this.context=context; } @Override public Fragment getItem(int position) { return FragmentPage.getIntence(position+1); } @Override public int getCount() { return titles.length; } @Override public CharSequence getPageTitle(int position) { return titles[position]; } }3、複用的fragment
package com.han.onermb.fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.google.gson.Gson; import com.han.onermb.R; import com.han.onermb.adapter.MyRecycleViewAdapter; import com.han.onermb.base.BaseData; import com.han.onermb.bean.RecycleViewBean; import com.han.onermb.interfaces.ICallback; import com.han.onermb.recycleview.DividerGridItemDecoration; import com.han.onermb.utils.URLUtils; /** * Created by 韓永光 * on 2017/2/8 10:50. */ public class FragmentPage extends Fragment { private int bundle; private RecyclerView recycleview; public static FragmentPage getIntence(int page) { FragmentPage fragmentPage = new FragmentPage(); Bundle bundle = new Bundle(); bundle.putInt("bundle", page); fragmentPage.setArguments(bundle); return fragmentPage; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); bundle = getArguments().getInt("bundle"); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.basefragment, null); recycleview = (RecyclerView) view.findViewById(R.id.recycleview); //recycleview資料 new BaseData().getData(URLUtils.BASE_URL, URLUtils.MAIN_URL, BaseData.LONG_TIME, new ICallback() { @Override public void onResponse(String responseInfo) { RecycleViewBean recycleViewBean = new Gson().fromJson(responseInfo, RecycleViewBean.class); //初始化RecycleView initRecycleView(recycleViewBean); } @Override public void onFailure(String errorInfo) { } }); return view; } private void initRecycleView(RecycleViewBean recycleViewBean) { recycleview.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); recycleview.addItemDecoration(new DividerGridItemDecoration(getActivity())); MyRecycleViewAdapter adapter = new MyRecycleViewAdapter(getActivity(), recycleViewBean); recycleview.setAdapter(adapter); } }4、在主activity/fragment設定
Adapter adapter=new Adapter(getFragmentManager(),getActivity()); vp_snatch.setAdapter(adapter); tablayout_snatch.setupWithViewPager(vp_snatch); //vp_view.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tablayout_snatch.setTabGravity(TabLayout.GRAVITY_FILL); //填充 //tabLayout.setTabMode(TabLayout.MODE_FIXED); //可滑動 橫向 // tablayout_snatch.setTabMode(TabLayout.MODE_SCROLLABLE);5、效果圖