左右侧滑广告条
1.viewPager
1.在布局中声明
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="400dp">
</android.support.v4.view.ViewPager>
2.在activity中声明并实例化
private ViewPager viewPager;3.加载数据并设置适配器以及设置监听
List<View> views=new ArrayList<>();
viewPager= (ViewPager) findViewById(R.id.viewPager);1.加载数据
initData();//初始化数据
//设置适配器
viewPager.setAdapter(new MyPageAdapter());
viewPager.setOnPageChangeListener(new myChangeListener());
/**2.关于适配器
* 加载视图到链表
*/
private void initData() {
for (int i=0;i<10;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher);
views.add(imageView);
}
}
继承PagerAdapter
private class MyPageAdapter extends PagerAdapter
private List<View> views=null;
public MyPageAdapter(List<View> views) {
this.views = views;
}
以下这几个需要重写
@Override关于监听器
public boolean isViewFromObject(View view, Object object) {
//判断视图对象是否跟object对象时同一个对象
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));//将指定的页面加载到容器中
return views.get(position);//返回该视图对象
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//将视图从容器中移除
container.removeView(views.get(position));
}
继承
onPageScrollStateChanged,不过好像并没有什么卵用,可以不用写
private class myChangeListener implements ViewPager.OnPageChangeListener {
2.用fragment实现
第一种用fragment实现的
ps:会比较鸡肋,没什么卵用,还不如viewpager好用
初始化所有的控件以及fragment
viewPager= (ViewPager) findViewById(R.id.fragmentPager);
//创建需要的所有fragment并设置适配器
List<android.support.v4.app.Fragment> fragments=new ArrayList<>();
FragmentOne fragmentOne=new FragmentOne();
FragmentTwo fragmentTwo=new FragmentTwo();
fragments.add(fragmentOne);
fragments.add(fragmentTwo);
设置适配器
viewPager.setAdapter(new MyFragmentAdapter(getSupportFragmentManager(),fragments));将要显示的视图传入适配器~~~
public MyFragmentAdapter(FragmentManager fm, List<android.support.v4.app.Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
第二种
选项卡,viewpager与tab一起使用实现联动
<android.support.v4.view.ViewPager
android:id="@+id/tab_viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</android.support.v4.view.ViewPager>
<android.support.design.widget.TabLayout
android:id="@+id/tableLayout"
android:layout_width="match_parent"
android:layout_height="50dp">
就是这种效果
1.先写一个类继承fragment
public class PageFragment extends Fragment {
public static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
public static PageFragment newInstance(int page) {//获得实例对象
Bundle args = new Bundle();
args.putInt(ARG_PAGE,page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPage=getArguments().getInt(ARG_PAGE);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab_pager,container,false);
TextView textView= (TextView) view.findViewById(R.id.tab_textview);
textView.setText("fragment#"+mPage);//设置fragment的内容
return view;
}
这里正常的,像之前的fragment一样
声明并实例化viewpager以及tablayout以及设置适配器
viewPager= (ViewPager) findViewById(R.id.tab_viewPager);
tabLayout= (TabLayout) findViewById(R.id.tableLayout);
viewPager.setAdapter(new MySimplePageAdapter(getSupportFragmentManager()));
tabLayout.setupWithViewPager(viewPager);//设置联动效果
tabLayout.setTabMode(TabLayout.MODE_FIXED);
关于适配器
private class MySimplePageAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 4;
private String tabTitles[] = new String[]{"tab1","tab2","tab3","tab4"};
public MySimplePageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return PageFragment.newInstance(position+1);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles[position];
}
}
关于tab的样式现在不想研究,有空再说,弄完了记得写笔记
左右侧滑广告条
1.viewPager
1.在布局中声明
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="400dp">
</android.support.v4.view.ViewPager>
2.在activity中声明并实例化
private ViewPager viewPager;3.加载数据并设置适配器以及设置监听
List<View> views=new ArrayList<>();
viewPager= (ViewPager) findViewById(R.id.viewPager);1.加载数据
initData();//初始化数据
//设置适配器
viewPager.setAdapter(new MyPageAdapter());
viewPager.setOnPageChangeListener(new myChangeListener());
/**2.关于适配器
* 加载视图到链表
*/
private void initData() {
for (int i=0;i<10;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher);
views.add(imageView);
}
}
继承PagerAdapter
private class MyPageAdapter extends PagerAdapter
private List<View> views=null;
public MyPageAdapter(List<View> views) {
this.views = views;
}
以下这几个需要重写
@Override关于监听器
public boolean isViewFromObject(View view, Object object) {
//判断视图对象是否跟object对象时同一个对象
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));//将指定的页面加载到容器中
return views.get(position);//返回该视图对象
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//将视图从容器中移除
container.removeView(views.get(position));
}
继承
onPageScrollStateChanged,不过好像并没有什么卵用,可以不用写
private class myChangeListener implements ViewPager.OnPageChangeListener {
2.用fragment实现
第一种用fragment实现的
ps:会比较鸡肋,没什么卵用,还不如viewpager好用
初始化所有的控件以及fragment
viewPager= (ViewPager) findViewById(R.id.fragmentPager);
//创建需要的所有fragment并设置适配器
List<android.support.v4.app.Fragment> fragments=new ArrayList<>();
FragmentOne fragmentOne=new FragmentOne();
FragmentTwo fragmentTwo=new FragmentTwo();
fragments.add(fragmentOne);
fragments.add(fragmentTwo);
设置适配器
viewPager.setAdapter(new MyFragmentAdapter(getSupportFragmentManager(),fragments));将要显示的视图传入适配器~~~
public MyFragmentAdapter(FragmentManager fm, List<android.support.v4.app.Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
第二种
选项卡,viewpager与tab一起使用实现联动
<android.support.v4.view.ViewPager
android:id="@+id/tab_viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</android.support.v4.view.ViewPager>
<android.support.design.widget.TabLayout
android:id="@+id/tableLayout"
android:layout_width="match_parent"
android:layout_height="50dp">
就是这种效果
1.先写一个类继承fragment
public class PageFragment extends Fragment {
public static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
public static PageFragment newInstance(int page) {//获得实例对象
Bundle args = new Bundle();
args.putInt(ARG_PAGE,page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPage=getArguments().getInt(ARG_PAGE);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab_pager,container,false);
TextView textView= (TextView) view.findViewById(R.id.tab_textview);
textView.setText("fragment#"+mPage);//设置fragment的内容
return view;
}
这里正常的,像之前的fragment一样
声明并实例化viewpager以及tablayout以及设置适配器
viewPager= (ViewPager) findViewById(R.id.tab_viewPager);
tabLayout= (TabLayout) findViewById(R.id.tableLayout);
viewPager.setAdapter(new MySimplePageAdapter(getSupportFragmentManager()));
tabLayout.setupWithViewPager(viewPager);//设置联动效果
tabLayout.setTabMode(TabLayout.MODE_FIXED);
关于适配器
private class MySimplePageAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 4;
private String tabTitles[] = new String[]{"tab1","tab2","tab3","tab4"};
public MySimplePageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return PageFragment.newInstance(position+1);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles[position];
}
}
关于tab的样式现在不想研究,有空再说,弄完了记得写笔记