您的位置:首页 > 其它

ViewPager中t常见tab例子2

2016-02-04 00:00 155 查看
摘要: 顶部4个TextView , TextView下面一个ViewPager 点中TextView, ViewPager要相应的改变 或滑动ViewPager , TextView也要相应的改变

效果图示例:







===============================

1、res/layout中activity_main.xml布局

代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<LinearLayout

android:id="@+id/linearLayout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#000"

android:gravity="center"

android:orientation="horizontal">

<TextView

android:id="@+id/text_info"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:textSize="25sp"

android:gravity="center"

android:textColor="#fff"

android:text="消息" />

<TextView

android:id="@+id/text_friend"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:textSize="25sp"

android:gravity="center"

android:textColor="#fff"

android:text="好友" />

<TextView

android:id="@+id/text_group"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:textSize="25sp"

android:gravity="center"

android:textColor="#fff"

android:text="群组" />

<TextView

android:id="@+id/text_dynamic"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:textSize="25sp"

android:gravity="center"

android:textColor="#fff"

android:text="动态" />

</LinearLayout>

<android.support.v4.view.ViewPager

android:id="@+id/viewPager"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

</LinearLayout>

========================

2、源文件2个一个Fragment 一个MainActivity

MainActivity类

代码

public class MainActivity extends FragmentActivity {

private ViewPager viewPager;

private LinearLayout linearLayout;

private MyFragmentPagerAdapter adapter;

private List<Fragment> list;

private TextView[] arrText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initTabs();//初始化tab方法

initViewPager();//初始化viewPager方法

}

private void initTabs() {

this.linearLayout = (LinearLayout) this.findViewById(R.id.linearLayout);

arrText = new TextView[linearLayout.getChildCount()];//有多少个TextView就new多少个

for(int i = 0;i<arrText.length;i++){

//在这给tab中的每个TextView设置需要的属性

arrText[i] = (TextView) linearLayout.getChildAt(i);//把TextView放到数组里方便在其他地方操作

//arrText[i].setEnabled(true);

arrText[i].setBackgroundColor(Color.GRAY);//全部初始化为灰色

arrText[i].setTag(i);//设置标记 方便在其他地方操作相应的TextView

//arrText点击事件监听

arrText[i].setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//在这里用到上面设置的 标志

viewPager.setCurrentItem((Integer) v.getTag());

}

});

}

//arrText[0].setEnabled(false);

//设置默认的TextView

arrText[0].setBackgroundColor(Color.CYAN);//青色

}

private void initViewPager() {

this.viewPager = (ViewPager) this.findViewById(R.id.viewPager);

list = new ArrayList<Fragment>();

//碎片的创建

Tabs_Fragment fragment1 = new Tabs_Fragment();

Bundle bundle1 = new Bundle();

bundle1.putInt("tabIndex", 1);

fragment1.setArguments(bundle1);

Tabs_Fragment fragment2 = new Tabs_Fragment();

Bundle bundle2 = new Bundle();

bundle2.putInt("tabIndex", 2);

fragment2.setArguments(bundle2);

Tabs_Fragment fragment3 = new Tabs_Fragment();

Bundle bundle3 = new Bundle();

bundle3.putInt("tabIndex", 3);

fragment3.setArguments(bundle3);

Tabs_Fragment fragment4 = new Tabs_Fragment();

Bundle bundle4 = new Bundle();

bundle4.putInt("tabIndex", 4);

fragment4.setArguments(bundle4);

list.add(fragment1);

list.add(fragment2);

list.add(fragment3);

list.add(fragment4);

adapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), list);

viewPager.setAdapter(adapter);

viewPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override

public void onPageSelected(int position) {

for(int i = 0;i<arrText.length;i++){

//arrText[i].setEnabled(true);

//全部改为灰色

arrText[i].setBackgroundColor(Color.GRAY);

}

//arrText[position].setEnabled(false);

//选中的改为青色

arrText[position].setBackgroundColor(Color.CYAN);

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

});

}

class MyFragmentPagerAdapter extends FragmentPagerAdapter{

private List<Fragment> list;

public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment> list) {

super(fm);

this.list = list;

}

@Override

public Fragment getItem(int position) {

return this.list.get(position);

}

@Override

public int getCount() {

return this.list.size();

}

}

}

--------------------------------

Tabs_Fragment.java类

代码

public class Tabs_Fragment extends Fragment {

private int tabIndex;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

tabIndex = getArguments().getInt("tabIndex");

}

@Override

public View onCreateView(LayoutInflater inflater,

@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

TextView text = new TextView(getActivity());

switch(tabIndex){

case 1:

text.setText("这是消息界面fragment");

text.setTextSize(30);

break;

case 2:

text.setText("这是好友界面fragment");

text.setTextSize(30);

break;

case 3:

text.setText("这是群组界面fragment");

text.setTextSize(30);

break;

case 4:

text.setText("这是动态界面fragment");

text.setTextSize(30);

break;

}

return text;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: