tablayout 自动轮播 和viewpager

package com.bwie.zhouliumoni.fragment;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.bwie.zhouliumoni.R;
import com.bwie.zhouliumoni.adapter.Myvp01Adapter;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 老北城 on 2017/10/21.
 */

public class ShouyeFragment extends Fragment {

    private TabLayout shouye_tas;
    private ViewPager shouye_vp;
    private List<String> list;
    private ViewPager vp_01;
    private LinearLayout lin_buttom;
    private List<String> listurl;
    private List<ImageView> images;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            //获取当前正在显示的页面
            int index=vp_01.getCurrentItem();
            vp_01.setCurrentItem(index+1);
            //改变小圆点
            setSelectedPoint((index+1)%listurl.size());
            //延迟发送消息
            sendEmptyMessageDelayed(1,2000);
        }
    };

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v=View.inflate(getContext(), R.layout.shouye,null);
        //找到控件
        shouye_tas = (TabLayout) v.findViewById(R.id.shouye_tas);
        shouye_vp = (ViewPager) v.findViewById(R.id.shouye_vp);
        vp_01 = (ViewPager) v.findViewById(R.id.vp_01);
        lin_buttom = (LinearLayout) v.findViewById(R.id.lin_bottom);

        return v;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        list = new ArrayList<>();
        list.add("推荐");
        list.add("课程");
        list.add("实战");
        list.add("职业路径");
        shouye_vp.setAdapter(new MyvpAdapter(getChildFragmentManager()));

        //进行关联
        shouye_tas.setupWithViewPager(shouye_vp);

        listurl = new ArrayList<>();
        listurl.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");
        listurl.add("http://pic2.nipic.com/20090424/1468853_230119053_2.jpg");
        listurl.add("http://img3.3lian.com/2013/s1/20/d/57.jpg");
        listurl.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg");
        listurl.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");

        //初始化小圆点
        initDoc();
        //设置加载的页数
        vp_01.setCurrentItem(listurl.size()*10);

        //设置适配器
        vp_01.setAdapter(new Myvp01Adapter(getContext(),listurl));
        //发送消息实现自动轮播
        handler.sendEmptyMessageDelayed(1,2000);

    }

    //切换tablayout的适配器配置
    class MyvpAdapter extends FragmentPagerAdapter{
        public MyvpAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return list.get(position);
        }

        @Override
        public Fragment getItem(int position) {
            Bundle bundle = new Bundle();
            bundle.putString("key",list.get(position));
            ContentFragment contentFragment = new ContentFragment();
            contentFragment.setArguments(bundle);

            return contentFragment;
        }

        @Override
        public int getCount() {
            return list.size();
        }
    }

    public void setSelectedPoint(int index){
        for (int i=0;i<images.size();i++){
            if(i==index){
                images.get(i).setImageResource(R.drawable.point_selected);
            }else{
                images.get(i).setImageResource(R.drawable.point_un_selected);
            }
        }
    }

    //配置小圆点
    public void initDoc(){
        images = new ArrayList<>();

        for (int i=0;i<listurl.size();i++){
            ImageView imgPoint=new ImageView(getContext());
            //设置图片的缩放模式
            imgPoint.setScaleType(ImageView.ScaleType.FIT_XY);
            if (i==0){
                imgPoint.setImageResource(R.drawable.point_selected);
            }else{
                imgPoint.setImageResource(R.drawable.point_un_selected);
            }

            //设置宽度和高度
            LinearLayout.LayoutParams  params=new LinearLayout.LayoutParams(15,15);
            params.setMargins(10,0,10,0);
            //添加到容器里面
            lin_buttom.addView(imgPoint,params);
            images.add(imgPoint);
        }
    }
}

布局
<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.design.widget.TabLayout
        android:id="@+id/shouye_tas"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        app:tabGravity="center"
        app:tabIndicatorColor="@color/colorAccent"
        app:tabMode="fixed"
        app:tabSelectedTextColor="@color/colorPrimaryDark"
        app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >

        <android.support.v4.view.ViewPager
            android:id="@+id/vp_01"
            android:layout_width="match_parent"
            android:layout_height="210dp"></android.support.v4.view.ViewPager>

        <!--android:layout_alignBottom: 控件的下边对齐-->
        <LinearLayout
            android:id="@+id/lin_bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/vp_01"
            android:layout_marginBottom="7dp"
            android:gravity="center"
            android:orientation="horizontal"></LinearLayout>

    </RelativeLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/shouye_vp"
        android:layout_width="match_parent"
        android:layout_height="405dp"
        android:layout_below="@+id/shouye_tas"></android.support.v4.view.ViewPager>

</LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值