效果图:不多说直接上代码,大家请看详细代码注释:
productxq.java:
package com.example.xh.twostylefragment;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">import android.widget.ImageView;</span>
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Button;
import android.view.ViewGroup;
/**
* Created by XH on 2016/7/29.
*/
<p>public class productxq extends FragmentActivity{</p> private TextView[] RB; //定义一个数组RB来保存TextView,方便我们对TextView的修改和调用.
private ViewPager viewpager;//定义一个viewpager,viewpager主要是用来保存不同的页面布局内容.
private LinearLayout tab_container_layout;//定义一个linearlayout,我们后面要用它获得控件数量.
private String[] titles={"商品","详情","评价"};//定义一个字符串类型的数组用来保存我们的标题内容.
private Fragment[] fragments; <span style="font-size:10px;">//定义一个fragment数组方便我们访问不同的fragment.</span>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.productxq);//显示productxq布局.
init();//调用init()函数.
//设置ViewPager的适配器
viewpager.setAdapter(new MyAdpater(getSupportFragmentManager()));//为viewpager设置我们自定义的MyAdpater适配器.
}
/*
init()函数
*/
private void init() {
viewpager =(ViewPager)findViewById(R.id.viewpager);//对viewpager进行注册
viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){//实现页面左右滑动切换时标题一起切换
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
selectedTitle(position);//<span style="font-size: 12.6316px; font-family: Arial, Helvetica, sans-serif;">重新设置标题的选中,根据position的值将页面和标题同步切换.</span>
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
fragments = new Fragment[3]; //new出一个容量为3的fragment数组
fragments[0] = new fragment1();//将各个fragment传给数组,记住创建fragment1的activity还有对应的fragment1.xml文件(这个布局是我们要显示的),
fragments[1] = new fragment2();//<span style="font-size: 12.6316px; font-family: Arial, Helvetica, sans-serif;">后面我会给出有关</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">fragment1的代码,大家可以看看,fragment2,3是一样的.</span>
fragments[2] = new fragment3();
tab_container_layout =(LinearLayout)findViewById(R.id.tab_container_layout);//注册标题栏,见productxq.xml
int count = tab_container_layout.getChildCount();//count用来保存标题栏的子控件数量
RB = new TextView[count]; //new出一个容量为count的TextView数组,方便我们访问标题栏.
//从容器中的得到子控件
for (int i = 0; i < count;i++){
RB[i] = (TextView) tab_container_layout.getChildAt(i);//获取每个TextView标题栏.
RB[i].setText(titles[i]);//给每个TextView标题栏赋值,也就是titles数组里面的字符串.
RB[i].setTag(i);//给每个标题添加一个tag值
RB[i].setEnabled(true);//将每个标题栏设为可点击
//标