package com.diygreen.android6new.newwidget2;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.diygreen.android6new.R;
import java.util.ArrayList;
import java.util.List;
public class TabLayoutDemo2Activity extends AppCompatActivity {
private TabLayout mTitleTL;
private ViewPager mContentVP;
private String[] mTitleArr = {"Android", "Java", "iOS", "C", "C++", "Swift", "Python"};
private List<View> mViewList;
private TabLayoutDemo2PagerAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tablayoutdemo2);
initView();
initData();
}
private void initView() {
mTitleTL = (TabLayout) findViewById(R.id.tl_title);
mContentVP = (ViewPager) findViewById(R.id.vp_content);
}
private void initData() {
int size = mTitleArr.length;
mViewList = new ArrayList<>(size);
// 添加 Tab,初始化 View 列表
for (int i = 0; i < size; i++) {
mTitleTL.addTab(mTitleTL.newTab().setText(mTitleArr[i]));
View view = LayoutInflater.from(this).inflate(R.layout.item_tablayoutdemo2_vp, null);
TextView tv = (TextView) view.findViewById(R.id.tv_text);
tv.setText(mTitleArr[i]);
mViewList.add(view);
}
mAdapter = new TabLayoutDemo2PagerAdapter(mViewList);
// 填充 ViewPager
mContentVP.setAdapter(mAdapter);
// 给ViewPager添加监听
mContentVP.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTitleTL));
// 设置setOnTabSelectedListener
mTitleTL.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 切换到指定的 item
mContentVP.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_add:
addTab();
break;
case R.id.btn_removefirst:
removeFirstTab();
break;
case R.id.btn_removelast:
removeLastTab();
break;
case R.id.btn_removeall:
removeAllTabs();
break;
}
}
private void addTab() {
TabLayout.Tab tab = mTitleTL.newTab().setText("DIY-TAB");
mTitleTL.addTab(tab);
View view = LayoutInflater.from(this).inflate(R.layout.item_tablayoutdemo2_vp, null);
TextView tv = (TextView) view.findViewById(R.id.tv_text);
tv.setText("DIY-TAB");
mViewList.add(view);
mAdapter.notifyDataSetChanged();
}
private void removeFirstTab() {
int count = mTitleTL.getTabCount();
if (count <= 0) return;
mTitleTL.removeTabAt(0);
mViewList.remove(0);
mAdapter.notifyDataSetChanged();
}
private void removeLastTab() {
int count = mTitleTL.getTabCount();
if (count <= 0) return;
mTitleTL.removeTabAt(count - 1);
mViewList.remove(count -1);
mAdapter.notifyDataSetChanged();
}
private void removeAllTabs() {
int count = mTitleTL.getTabCount();
if (count <= 0) return;
mTitleTL.removeAllTabs();
mViewList.clear();
mAdapter.notifyDataSetChanged();
}
}