zoukankan      html  css  js  c++  java
  • viewpager+fragment用法

    一viewpager

    1viewpager继承ViewGroup类

    2viewpager经常与fragment一起用

    3viewpager的主要用到一个pageradpter类是fragmentpageradpter类,两个组件类是Pagertitlestrip类和Pagertabstrip类

    二代码实现:

    layout.xml:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <RelativeLayout 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"
        tools:context=".MainActivity" >
     
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
     
            <android.support.v4.view.PagerTabStrip
                android:id="@+id/tabstrip"
                android:layout_width="wrap_content"
                android:layout_height="50dip"
                android:gravity="center" />
        </android.support.v4.view.ViewPager>
     
    </RelativeLayout>

    MainActivity.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    package com.example.android_viewpager1;
     
    import java.util.ArrayList;
     
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.PagerTabStrip;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
     
    public class MainActivity extends Activity {
     
        ViewPager pager = null;
        PagerTabStrip tabStrip = null;
        ArrayList<View> viewContainter = new ArrayList<View>();
        ArrayList<String> titleContainer = new ArrayList<String>();
        public String TAG = "tag";
     
        @SuppressLint("ResourceAsColor")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            pager = (ViewPager) this.findViewById(R.id.viewpager);
            tabStrip = (PagerTabStrip) this.findViewById(R.id.tabstrip);
            //取消tab下面的长横线
            tabStrip.setDrawFullUnderline(false);
            //设置tab的背景色
            tabStrip.setBackgroundColor(this.getResources().getColor(R.color.bg));
            //设置当前tab页签的下划线颜色
            tabStrip.setTabIndicatorColor(this.getResources().getColor(R.color.red));
            tabStrip.setTextSpacing(200);
             
            View view1 = LayoutInflater.from(this).inflate(R.layout.tab1, null);
            View view2 = LayoutInflater.from(this).inflate(R.layout.tab2, null);
            View view3 = LayoutInflater.from(this).inflate(R.layout.tab3, null);
            View view4 = LayoutInflater.from(this).inflate(R.layout.tab4, null);
          //viewpager开始添加view
            viewContainter.add(view1);
            viewContainter.add(view2);
            viewContainter.add(view3);
            viewContainter.add(view4);
          //页签项
            titleContainer.add("网易新闻");
            titleContainer.add("网易体育");
            titleContainer.add("网易财经");
            titleContainer.add("网易女人");
     
            pager.setAdapter(new PagerAdapter() {
     
                //viewpager中的组件数量
                @Override
                public int getCount() {
                    return viewContainter.size();
                }
              //滑动切换的时候销毁当前的组件
                @Override
                public void destroyItem(ViewGroup container, int position,
                        Object object) {
                    ((ViewPager) container).removeView(viewContainter.get(position));
                }
              //每次滑动的时候生成的组件
                @Override
                public Object instantiateItem(ViewGroup container, int position) {
                    ((ViewPager) container).addView(viewContainter.get(position));
                    return viewContainter.get(position);
                }
     
                @Override
                public boolean isViewFromObject(View arg0, Object arg1) {
                    return arg0 == arg1;
                }
     
                @Override
                public int getItemPosition(Object object) {
                    return super.getItemPosition(object);
                }
     
                @Override
                public CharSequence getPageTitle(int position) {
                    return titleContainer.get(position);
                }
            });
     
            pager.setOnPageChangeListener(new OnPageChangeListener() {
                @Override
                public void onPageScrollStateChanged(int arg0) {
                    Log.d(TAG, "--------changed:" + arg0);
                }
     
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    Log.d(TAG, "-------scrolled arg0:" + arg0);
                    Log.d(TAG, "-------scrolled arg1:" + arg1);
                    Log.d(TAG, "-------scrolled arg2:" + arg2);
                }
     
                @Override
                public void onPageSelected(int arg0) {
                    Log.d(TAG, "------selected:" + arg0);
                }
            });
     
        }
     
    }
  • 相关阅读:
    Kubernetes K8S之Helm部署、使用与示例
    Kubernetes K8S之鉴权RBAC详解
    多图详解Go的sync.Pool源码
    多图详解Go的互斥锁Mutex
    5.深入Istio源码:Pilot-agent作用及其源码分析
    ribbon源码分析
    nacos注册中心源码流程分析
    nacos配置中心使用
    基于nacos注册中心的ribbon定制规则
    golang调用百度音转文websocket服务“invalid frame type”错误排查及解决
  • 原文地址:https://www.cnblogs.com/huoshenmanbu/p/4758508.html
Copyright © 2011-2022 走看看