左右侧滑广告条



左右侧滑广告条

     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;
List<View> views=new ArrayList<>();
        3.加载数据并设置适配器以及设置监听
viewPager= (ViewPager) findViewById(R.id.viewPager);
initData();//初始化数据
//设置适配器
viewPager.setAdapter(new MyPageAdapter());
viewPager.setOnPageChangeListener(new myChangeListener());
             1.加载数据
/**
* 加载视图到链表
*/
private void initData() {

for (int i=0;i<10;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher);
views.add(imageView);
}
}
        2.关于适配器
            继承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;
List<View> views=new ArrayList<>();
        3.加载数据并设置适配器以及设置监听
viewPager= (ViewPager) findViewById(R.id.viewPager);
initData();//初始化数据
//设置适配器
viewPager.setAdapter(new MyPageAdapter());
viewPager.setOnPageChangeListener(new myChangeListener());
             1.加载数据
/**
* 加载视图到链表
*/
private void initData() {

for (int i=0;i<10;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher);
views.add(imageView);
}
}
        2.关于适配器
            继承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的样式现在不想研究,有空再说,弄完了记得写笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值