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;
}
}
效果图示例:
===============================
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;
}
}
相关文章推荐
- Handler的基本使用
- #TCP你学得会# 之 当listen和accept遇到fork
- Android RecyclerView初步学习
- Android Intent传值 Serializable Parcelable
- xpath提取子标签内所有文字内容
- 阶段性理解php-fpm与nginx的关系
- 码农十年连载五
- 23种设计模式之观察者模式
- Node.js刷新session过期时间
- hadoop源码阅读之一:MR第二步:Mapper类
- android studio 显示 no debuggable applications
- 安卓开发——Canvas类
- 编译成功hadoop 纪念一下
- db papers
- wbelogic报错<BEA-000365> <Server st ate changed to FORCE_SHUTTING_DOWN>Authentication denied
- Cocos2d-x TextField的使用
- freeRTOS学习1
- nano命令
- 最简单的基于FFMPEG的封装格式转换器(无编解码)
- JavaWeb出现404一个很隐蔽的原因