悬浮控件之Tablayout

来源:互联网 发布:创维5t36数据 编辑:程序博客网 时间:2024/05/16 23:44

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.CoordinatorLayout        xmlns: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适配器
import android.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、效果图


1 0