XML源码:
frag_02.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
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/ic_launcher" />
</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>
frag_02_one.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000">
</LinearLayout>
上面的代码是上边的滑动的菜单
以下的代码就是黑色部分的java代码
package com.guo.xiangmu.frag.tab;
import com.guo.xiangmu.R;
import com.guo.xiangmu.frag.BaseFramt;
public class Fragment01 extends BaseFramt {
@Override
protected int bindLayout() {
return R.layout.frag_02_one;
}
@Override
protected void initView() {
}
@Override
protected void initData() {
}
@Override
protected void bindEvent() {
}
}
JAVA源码:
package com.guo.xiangmu.frag;
import com.guo.xiangmu.R;
import com.guo.xiangmu.frag.tab.Fragment01;
import com.qy.channel.ChannelActivity;
import com.qy.channel.bean.ChannelItem;
import com.qy.channel.db.DBUtil;
import android.content.Intent;
import android.os.Bundle;
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.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;
public class Frag_02 extends BaseFramt{
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.frag_02;
}
@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();
}
@Override
public CharSequence getPageTitle(int position) {
return userChannelList.get(position).getName();
}
});
}
}