资讯_频道管理

注意:channelmanagement是提前写好,导入
依赖

implementation 'com.android.support:design:28.0.0'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

QQ界面:https://blog.csdn.net/qq_43797842/article/details/85758420

Fragmnet基类

package com.example.luwenjie0119.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * @Auther: 努力
 * @Date: 2019/1/17 13:55:${卢文杰}
 * @Description:
 */
public abstract class BaseFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(bindlayout(), container, false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();
        initData();
        bindEvent();
    }
    //布局
    protected abstract int bindlayout();
    //控件
    protected abstract void initView();
    //数据
    protected abstract void initData();
    //监听
    protected abstract void bindEvent();

    protected <T extends View> T bindView(int resId) {
        return (T) getView().findViewById(resId);
    }

}

Fragment页面

package com.example.luwenjie0119.fragment;

import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;

import com.example.luwenjie0119.R;
import com.example.luwenjie0119.fragment.tab.Fragment01;
import com.qy.channel.ChannelActivity;
import com.qy.channel.bean.ChannelItem;
import com.qy.channel.db.DBUtil;

import java.util.ArrayList;

/**
 * @Auther: 努力
 * @Date: 2019/1/17 13:59:${卢文杰}
 * @Description:
 */
public class Fragment_m extends BaseFragment {

    private TabLayout tabLayout;
    private ViewPager pager;
    private ImageView imageView;
    private ArrayList<ChannelItem> userChannelList = new ArrayList<ChannelItem>();
    private ArrayList<Fragment> list;

    @Override
    protected int bindlayout() {
        return R.layout.fragment_m;
    }

    @Override
    protected void initView() {
        //找控件
        tabLayout = bindView(R.id.tablayout);
        pager = bindView(R.id.pager);
        imageView = bindView(R.id.tabImage);
    }

    @Override
    protected void initData() {
        //初始化Tab数据
        //查询数据库
        userChannelList = DBUtil.getTabData(getActivity());
        //加载Fragment
        list = new ArrayList<>();

        for (int i = 0; i < userChannelList.size(); i++) {
            ChannelItem channelItem = userChannelList.get(i);
            String name = channelItem.getName();
            list.add(new Fragment01());
        }


    }

    @Override
    protected void bindEvent() {
        //设置适配器
        pagerAdapter();
        //绑定 让viewpager和tabLayout关联
        tabLayout.setupWithViewPager(pager);
        //点击跳转频道管理
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳转Activity
                Intent intent = new Intent(getActivity(), ChannelActivity.class);
                //跳转回传
                startActivityForResult(intent, 0);
            }
        });

    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断是不是我们的回传 回传值是0
        if (requestCode == 0) {
            //查询数据库中的数据 ,找到我们要展示的Tab标签
            userChannelList = DBUtil.getTabData(getActivity());
            //便利数据(对数据进行刷新操作)
            for (int i = 0; i < userChannelList.size(); i++) {

                ChannelItem channelItem = userChannelList.get(i);
                String name = channelItem.getName();
                tabLayout.addTab(tabLayout.newTab().setText(name));
                //8设置fragment(可以根据名字创建Fragment)
//                if ("北京".equals(tabName)) {
                list.add(new Fragment01());
//                } else {
////                    .,....
//                }
            }
        }
        tabLayout.setupWithViewPager(pager);
        pagerAdapter();
    }

    private void pagerAdapter() {

        pager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

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

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return userChannelList.get(position).getName();
            }
        });

    }

}

Fragment页面布局

<?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">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:tabGravity="center"
            app:tabMode="scrollable"></android.support.design.widget.TabLayout>

        <ImageView
            android:id="@+id/tabImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/menu" />

    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></android.support.v4.view.ViewPager>

</LinearLayout>

注意:频道页面,自己创建新的Fragment页面
效果图
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43797842/article/details/86524558