专高二 day12-新闻模块——pulltorefresh以及banner以及FlycoTabLayout(提薪) 点击万能适配器里的item里的子控件

专高二   day12-新闻模块——pulltorefresh以及banner专高二   

CommonTabLayout

package com.bw.day12_pulltorefresh_banner_flycotablayout;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.bw.day12_pulltorefresh_banner_flycotablayout.entity.MyTabEntity;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private CommonTabLayout common;

    ArrayList<CustomTabEntity> customTabEntities=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();


        customTabEntities.add(new MyTabEntity("首页",R.drawable.pageshop,R.drawable.pageshopgray));
        customTabEntities.add(new MyTabEntity("分类",R.drawable.classshop,R.drawable.classshopgray));
        customTabEntities.add(new MyTabEntity("我的",R.drawable.mineshop,R.drawable.mineshopgray));
        common.setTabData(customTabEntities);







    }

    private void initView() {
        common = (CommonTabLayout) findViewById(R.id.common);
    }
}

实体类  实现  CustomTabEntity  接口

package com.bw.day12_pulltorefresh_banner_flycotablayout.entity;

import com.flyco.tablayout.listener.CustomTabEntity;

public class MyTabEntity implements CustomTabEntity {
    String title;
    int selected;
    int unselected;

    public MyTabEntity(String title, int selected, int unselected) {
        this.title = title;
        this.selected = selected;
        this.unselected = unselected;
    }

    @Override
    public String getTabTitle() {
        return title;
    }

    @Override
    public int getTabSelectedIcon() {
        return selected;
    }

    @Override
    public int getTabUnselectedIcon() {
        return unselected;
    }
}

切换页面    帧布局
 FragmentManager supportFragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
        blankFragment  = new BlankFragment();
        blankFragment2 = new BlankFragment2();
        blankFragment3 = new BlankFragment3();
        fragmentTransaction.add(R.id.fl,blankFragment);
        fragmentTransaction.add(R.id.fl,blankFragment2);
        fragmentTransaction.add(R.id.fl,blankFragment3);
        fragmentTransaction.hide(blankFragment);
        fragmentTransaction.hide(blankFragment2);
        fragmentTransaction.hide(blankFragment3);
        fragmentTransaction.show(blankFragment);
        fragmentTransaction.commit();

        common.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
                switch (position) {
                    case 0:
                        show(blankFragment);
                        break;
                    case 1:
                        show(blankFragment2);
                        break;
                    case 2:
                        show(blankFragment3);
                        break;
                }
            }

            @Override
            public void onTabReselect(int position) {

            }
        });



    }



    public void show(Fragment fragment){
        FragmentManager supportFragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
        fragmentTransaction.hide(blankFragment);
        fragmentTransaction.hide(blankFragment2);
        fragmentTransaction.hide(blankFragment3);
        fragmentTransaction.show(fragment);
        fragmentTransaction.commit();
    }

ViewPager  切换页面

package com.bw.day12_pulltorefresh_banner_flycotablayout;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;

import com.bw.day12_pulltorefresh_banner_flycotablayout.adapter.ViewPagerAdapter;
import com.bw.day12_pulltorefresh_banner_flycotablayout.entity.MyTabEntity;
import com.bw.day12_pulltorefresh_banner_flycotablayout.fg.BlankFragment;
import com.bw.day12_pulltorefresh_banner_flycotablayout.fg.BlankFragment2;
import com.bw.day12_pulltorefresh_banner_flycotablayout.fg.BlankFragment3;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;
import com.flyco.tablayout.listener.OnTabSelectListener;

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

public class MainActivity2 extends AppCompatActivity {

    private ViewPager vp;
    private CommonTabLayout common;
    private List<Fragment> list=new ArrayList<>();

    ViewPagerAdapter viewPagerAdapter;

    ArrayList<CustomTabEntity> customTabEntities=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initView();

        customTabEntities.add(new MyTabEntity("首页",R.drawable.pageshop,R.drawable.pageshopgray));
        customTabEntities.add(new MyTabEntity("分类",R.drawable.classshop,R.drawable.classshopgray));
        customTabEntities.add(new MyTabEntity("我的",R.drawable.mineshop,R.drawable.mineshopgray));
        common.setTabData(customTabEntities);

        list.add(new BlankFragment());
        list.add(new BlankFragment2());
        list.add(new BlankFragment3());

        viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager(),list,this);
        vp.setAdapter(viewPagerAdapter);

        common.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
                switch (position) {
                    case 0:
                        vp.setCurrentItem(0);
                        break;
                    case 1:
                        vp.setCurrentItem(1);
                        break;
                    case 2:
                        vp.setCurrentItem(2);
                        break;

                }
            }
            @Override
            public void onTabReselect(int position) {

            }
        });

        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                switch (position){
                    case 0:
                        common.setCurrentTab(0);
                        break;
                    case 1:
                        common.setCurrentTab(1);
                        break;
                    case 2:
                        common.setCurrentTab(2);
                        break;

                }
            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });




    }

    private void initView() {
        vp = (ViewPager) findViewById(R.id.vp);
        common = (CommonTabLayout) findViewById(R.id.common);
    }
}

适配器

package com.bw.day12_pulltorefresh_banner_flycotablayout.adapter;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import java.util.List;

public class ViewPagerAdapter extends FragmentPagerAdapter {
    List<Fragment> list;
    Context context;

    public ViewPagerAdapter(@NonNull FragmentManager fm, List<Fragment> list, Context context) {
        super(fm);
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

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

点击万能适配器里的item里的子控件

//点击item子控件
        wnAdapter.addChildClickViewIds(R.id.iv);
        wnAdapter.addChildClickViewIds(R.id.tv);
        wnAdapter.setOnItemChildClickListener(new OnItemChildClickListener() {
            @Override
            public void onItemChildClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
                int d=view.getId();
                switch (d) {
                    case R.id.iv:
                        Toast.makeText(getActivity(), "点击了tpian", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.tv:
                        Toast.makeText(getActivity(), "点击了文本", Toast.LENGTH_SHORT).show();
                        break;

                }
            }
        });

//分割线

//分割线
        DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
        dividerItemDecoration.setDrawable(getActivity().getDrawable(R.drawable.fgx));
        rv.addItemDecoration(dividerItemDecoration);
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <size android:width="500dp" android:height="2dp"></size>
    <solid android:color="@color/black"></solid>
</shape>

//刷新

//刷新
        sm.setOnLoadMoreListener(new OnRefreshLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                page++;
                initdata();
                //wnAdapter.notifyDataSetChanged();
                refreshLayout.finishLoadMore();
            }

            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                foodEntities.clear();
                initdata();
                refreshLayout.finishRefresh();
            }
        });

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值