`
wenxin2009
  • 浏览: 319919 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android中ViewPager例子

 
阅读更多

示例效果如下:



 

 

 代码如下:

1、

/**
 * 我的特权
 * Created by dwen on 2018/3/31.
 */

public class MyPrivilegeActivity extends BaseActivity {

    private ViewPager viewPager;
    private List<Fragment> list;
    private LinearLayout tab1,tab2;
    private ImageView line1,line2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_privilege);
        initUI();
        initViewPager();
    }

    /**
     * 初始化UI
     */
    private void initUI(){
        TextView textView = (TextView) this.findViewById(R.id.top_title);
        textView.setText("我的特权");
        //Tab line
        line1 = (ImageView)findViewById(R.id.privilege_tequan_line1);
        line2 = (ImageView)findViewById(R.id.privilege_tequan_line2);
        line2.setVisibility(View.GONE);
        //Tab
        tab1 = (LinearLayout)findViewById(R.id.privilege_tequan_tab1);
        tab2 = (LinearLayout)findViewById(R.id.privilege_tequan_tab2);
        tab1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(0);
                line1.setVisibility(View.VISIBLE);
                line2.setVisibility(View.GONE);
                //request date
            }
        });
        tab2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(1);
                line1.setVisibility(View.GONE);
                line2.setVisibility(View.VISIBLE);
            }
        });
    }

    /**
     * 初始化ViewPager
     */
    private void initViewPager(){
        //ViewPager
        viewPager = (ViewPager)findViewById(R.id.my_privilege_viewPager);

        //Set List
        list = new ArrayList<>();
        MyPrivilegeFragment1 fragment1 = new MyPrivilegeFragment1();
        list.add(fragment1);
        MyPrivilegeFragment2 fragment2 = new MyPrivilegeFragment2();
        list.add(fragment2);
        //Adapter
        MyPrivilegeAdapter adapter = new MyPrivilegeAdapter(getSupportFragmentManager(),list);
        viewPager.setAdapter(adapter);
        viewPager.setCurrentItem(0);
        //event listener
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }
            @Override
            public void onPageSelected(int position) {
                Log.i("onPageSelected::",position+"");
                if (position==0){
                    viewPager.setCurrentItem(0);
                    line1.setVisibility(View.VISIBLE);
                    line2.setVisibility(View.GONE);
                }else {
                    viewPager.setCurrentItem(1);
                    line1.setVisibility(View.GONE);
                    line2.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    /**
     * 分享
     */
    private void actionShare(){
        //TODO ............

    }

}

 

2、

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/title2"></include>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:orientation="horizontal"
        android:layout_marginTop="45dp">
        <LinearLayout
            android:id="@+id/privilege_tequan_tab1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:textSize="15dp"
                android:textColor="@color/text_color"
                android:text="推荐特权"/>
            <ImageView
                android:id="@+id/privilege_tequan_line1"
                android:layout_width="40dp"
                android:layout_height="2dp"
                android:layout_marginTop="16dp"
                android:background="@color/color_45bf23"/>

        </LinearLayout>
        <LinearLayout
            android:id="@+id/privilege_tequan_tab2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:textSize="15dp"
                android:textColor="@color/default_bt_tx_color"
                android:text="已开通特权"/>
            <ImageView
                android:id="@+id/privilege_tequan_line2"
                android:layout_width="40dp"
                android:layout_height="2dp"
                android:layout_marginTop="16dp"
                android:background="@color/color_45bf23"/>
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="99dp"
            android:background="@color/eeeeee_color"/>

        <android.support.v4.view.ViewPager
            android:id="@+id/my_privilege_viewPager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">


        </android.support.v4.view.ViewPager>
    </LinearLayout>

   


</RelativeLayout>

 

3、fragment_1

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ListView
        android:id="@+id/my_privilege_listV1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp">


    </ListView>
</RelativeLayout>

 

 4、fragment_2

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ListView
        android:id="@+id/my_privilege_listV2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp">


    </ListView>

</RelativeLayout>

 

5、 item_my_privilege.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/item_privilege_img"
        android:layout_width="33dp"
        android:layout_height="33dp"
        android:src="@mipmap/zuanshi"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="15dp"/>

    <TextView
        android:id="@+id/item_privilege_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/item_privilege_txt2"
        android:layout_alignBottom="@+id/item_privilege_txt2"
        android:layout_alignLeft="@+id/item_privilege_txt3"
        android:text="钻石会员"
        android:textColor="@color/text_color"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/item_privilege_txt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/item_privilege_txt"
        android:textSize="15dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="10dp"
        android:textColor="@color/color_ff7901"
        android:text="6980元" />

    <TextView
        android:id="@+id/item_privilege_txt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/item_privilege_img"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="35dp"
        android:textSize="12dp"
        android:textColor="@color/default_bt_tx_color"
        android:text="产品排名优先,专属于客服"/>
    
    <Button
        android:id="@+id/item_privilege_btn"
        android:layout_width="70dp"
        android:layout_height="30dp"
        android:background="@drawable/shape_corner3"
        android:textColor="@color/white"
        android:textSize="13dp"
        android:layout_alignParentRight="true"
        android:layout_marginTop="15dp"
        android:layout_marginRight="15dp"
        android:text="立即开通"/>

    <!-- line 1-->
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/eeeeee_color"
        android:layout_marginTop="63dp"/>

</RelativeLayout>

 

6、Fragment1

/**
 * 我的特权- 已开通特权
 * Created by dwen on 2018/3/31.
 */

public class MyPrivilegeFragment2 extends Fragment {

    private List<MyPrivilegeModel> privilegeList = new ArrayList<>();
    private ListView listView;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_my_privilege2,null);
        listView = (ListView) view.findViewById(R.id.my_privilege_listV2);
        this.initPrivilegeList();
        //TODO adapter......
        MyPrivilegeListAdapter adapter = new MyPrivilegeListAdapter(privilegeList,getActivity());
        listView.setAdapter(adapter);
        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
    }

    private void initPrivilegeList(){
        MyPrivilegeModel model = new MyPrivilegeModel();
        model.setImgTag(R.mipmap.zuanshi);
        model.setName("钻石会员");
        model.setDesc("2018-12-19到期");
        model.setApplyTxt("立即续费");
        privilegeList.add(model);
        MyPrivilegeModel model2 = new MyPrivilegeModel();
        model2.setImgTag(R.mipmap.huangjin);
        model2.setName("黄金会员");
        model2.setDesc("2018-12-19");
        model2.setApplyTxt("立即续费");
        privilegeList.add(model2);
        MyPrivilegeModel model3 = new MyPrivilegeModel();
        model3.setImgTag(R.mipmap.dangbao);
        model3.setName("担保认证");
        model3.setDesc("可随时申请退还");
        model3.setApplyTxt("申请退还");
        privilegeList.add(model3);

    }
}

 

7、Fragment2

/**
 * 我的特权- 已开通特权
 * Created by dwen on 2018/3/31.
 */

public class MyPrivilegeFragment2 extends Fragment {

    private List<MyPrivilegeModel> privilegeList = new ArrayList<>();
    private ListView listView;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_my_privilege2,null);
        listView = (ListView) view.findViewById(R.id.my_privilege_listV2);
        this.initPrivilegeList();
        //TODO adapter......
        MyPrivilegeListAdapter adapter = new MyPrivilegeListAdapter(privilegeList,getActivity());
        listView.setAdapter(adapter);
        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
    }

    private void initPrivilegeList(){
        MyPrivilegeModel model = new MyPrivilegeModel();
        model.setImgTag(R.mipmap.zuanshi);
        model.setName("钻石会员");
        model.setDesc("2018-12-19到期");
        model.setApplyTxt("立即续费");
        privilegeList.add(model);
        MyPrivilegeModel model2 = new MyPrivilegeModel();
        model2.setImgTag(R.mipmap.huangjin);
        model2.setName("黄金会员");
        model2.setDesc("2018-12-19");
        model2.setApplyTxt("立即续费");
        privilegeList.add(model2);
        MyPrivilegeModel model3 = new MyPrivilegeModel();
        model3.setImgTag(R.mipmap.dangbao);
        model3.setName("担保认证");
        model3.setDesc("可随时申请退还");
        model3.setApplyTxt("申请退还");
        privilegeList.add(model3);

    }
}

 

8、PrivilegeAdapter

/**
 * 我的特权
 * Created by dwen on 2018/3/31.
 */

public class MyPrivilegeAdapter extends FragmentPagerAdapter {

    private FragmentManager fragmentManager;
    private List<Fragment> fList;

    public MyPrivilegeAdapter(FragmentManager fm, List<Fragment> fList) {
        super(fm);
        this.fList = fList;
    }


    @Override
    public Fragment getItem(int position) {
        return this.fList.get(position);
    }

    @Override
    public int getCount() {
        return this.fList.size();
    }



}

 

9、PrivilegeListAdapter

/**
 * 我的特权-列表
 * Created by dwen on 2018/4/3.
 */

public class MyPrivilegeListAdapter extends BaseAdapter {

    List<MyPrivilegeModel> list = new ArrayList<MyPrivilegeModel>();
    Context context;

    public MyPrivilegeListAdapter(List<MyPrivilegeModel> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return this.list.size();
    }

    @Override
    public Object getItem(int position) {
        return this.list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        MyPrivilegeModel model = this.list.get(position);
        if (null == convertView){
            convertView = LayoutInflater.from(context).inflate(R.layout.item_my_privilege,null);
            holder = new ViewHolder(convertView);
            holder.txtName = convertView.findViewById(R.id.item_privilege_txt);
            holder.txtPrice = convertView.findViewById(R.id.item_privilege_txt2);
            holder.txtDesc = convertView.findViewById(R.id.item_privilege_txt3);
            holder.btnPrivilege = convertView.findViewById(R.id.item_privilege_btn);
            holder.imgV = convertView.findViewById(R.id.item_privilege_img);
            //Set Value
            holder.txtName.setText(model.getName());
            holder.txtPrice.setText(model.getPrice());
            holder.txtDesc.setText(model.getDesc());
            holder.btnPrivilege.setText(model.getApplyTxt());
            holder.imgV.setImageResource(model.getImgTag());
            this.goAction(holder);
            convertView.setTag(holder);
        }else {
            //直接通过holder获取子控件,不必使用findviewbyid,加快了 UI 的响应速度
            holder = (ViewHolder)convertView.getTag();
            //Set Value
            holder.txtName.setText(model.getName());
            holder.txtPrice.setText(model.getPrice());
            holder.txtDesc.setText(model.getDesc());
            holder.btnPrivilege.setText(model.getApplyTxt());
            holder.imgV.setImageResource(model.getImgTag());
            this.goAction(holder);
        }
        return convertView;
    }

    private  void  goAction(ViewHolder holder){
        //立即开通
        holder.btnPrivilege.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }

    static class ViewHolder{
        ImageView imgV;
        TextView txtName,txtPrice,txtDesc;
        Button btnPrivilege;

        public ViewHolder(){

        }
        public ViewHolder(View view){

        }
    }

}

 

 10、

/**
 * 我的特权
 * Created by dwen on 2018/4/3.
 */

public class MyPrivilegeModel {

    private int imgTag;
    private String name;
    private String price;
    private String desc;
    private String applyTxt;

    public int getImgTag() {
        return imgTag;
    }

    public void setImgTag(int imgTag) {
        this.imgTag = imgTag;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getPrice() {
        return price;
    }

    public String getDesc() {
        return desc;
    }

    public void setApplyTxt(String applyTxt) {
        this.applyTxt = applyTxt;
    }

    public String getApplyTxt() {
        return applyTxt;
    }
}

 

  • 大小: 69.1 KB
  • 大小: 30.8 KB
分享到:
评论

相关推荐

    Android ViewPager例子

    ButtonMenuDemo是一个简单的例子,展示了如何在ViewPager中展示一系列的按钮菜单。每个菜单项是一个单独的页面,用户可以通过滑动来切换。为了实现这个功能,我们可以按照以下步骤操作: - 创建一个`PagerAdapter...

    xamarin android viewpager例子

    在这个“xamarin android viewpager例子”中,我们将探讨ViewPager的基本用法以及如何结合PageTabStrip和PageTitleStrip进行更高级的应用。 **ViewPager基本用法** ViewPager本身不直接显示内容,而是依赖于适配器...

    android中ViewPager简单实例

    在这个例子中,我们创建一个`PagerAdapter`的子类,如`MyPagerAdapter`,继承自`FragmentStateAdapter`。`FragmentStateAdapter`会根据需要加载和销毁Fragment,以优化内存使用。 4. **实现PagerAdapter** 在`...

    ViewPager例子

    **ViewPager详解** ...综上所述,"ViewPager例子"展示了如何在Android应用中利用ViewPager实现图片浏览、双击跳转以及引导页功能。通过理解并实践这些知识点,开发者可以构建更加丰富、互动性强的Android应用。

    Android viewpager+listview例子

    总的来说,`Android viewpager+listview例子`是一个很好的实践项目,它涵盖了Android UI设计中的关键组件和交互方式。通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解...

    android实现viewpager的例子

    简单的一个viewpager的例子,也是我学习过程中的一个例子,分享出来大家一起学习 代码的一些个说明: http://blog.csdn.net/cau_eric/article/details/50474663

    Android viewpager左右滑动效果的例子

    标题"Android viewpager左右滑动效果的例子"直接点明了我们要讨论的主题,即如何在Android应用中实现类似微博的左右滑动界面。这种效果通常是通过`ViewPager`配合自定义适配器来完成的。在`ViewPager`中,我们可以...

    android Tab和ViewPager结合的例子

    在Android应用开发中,Tab和ViewPager的结合是创建多页导航界面的一种常见方式。这个例子主要探讨如何将这两个组件有效地整合在一起,为用户提供流畅的页面切换体验。在本篇文章中,我们将深入理解如何实现这一功能...

    android ViewPager例子

    android ViewPager例子,简单明了

    android Viewpager 动态加载

    - 这个示例可能是一个展示如何在ViewPager中动态加载图片的例子。通常会包含一个自定义的PagerAdapter,以及与图片加载库的集成,如Glide或Picasso的使用。 - 示例代码会展示如何在用户滑动时触发图片的加载,以及...

    实例讲解Android中ViewPager组件的一些进阶使用技巧

    在Android开发中,ViewPager是广泛使用的一个组件,它允许用户左右滑动切换页面,适用于创建引导页、图片浏览、幻灯片展示等多种场景。然而,当应用中使用ViewPager时,开发者常常会希望在界面上添加一些额外的元素...

    Android viewpager 简单实例

    在这个例子中,我们可能会创建一个名为`TestViewPagerAdapter`的类,继承自`FragmentPagerAdapter`: ```java public class TestViewPagerAdapter extends FragmentPagerAdapter { public TestViewPagerAdapter(@...

    ViewPager简单例子

    在这个例子中,我们有三个不同的页面要显示。通常,每个页面都是一个独立的Fragment,包含有自己的视图和逻辑。为了管理这些Fragment,我们可以创建一个PagerAdapter的子类,比如`FragmentPagerAdapter`或`...

    Android ViewPager实例代码介绍2。

    在这个例子中,我们可以创建一个名为`ContentTitleFragmentPagerAdapter`的类: ```java public class ContentTitleFragmentPagerAdapter extends FragmentPagerAdapter { private String[] titles; private ...

    Android应用源码之Android ViewPager Fragment实现选项卡.zip

    在Android开发中,ViewPager是一个非常重要的组件,常用于创建滑动页面效果,特别是在实现选项卡切换功能时。这个压缩包“Android应用源码之Android ViewPager Fragment实现选项卡”提供了具体的示例代码,帮助...

    android的ViewPager使用

    在Android开发中,ViewPager是一个非常重要的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现类似轮播图、Tab切换等效果。在本文中,我们将深入探讨如何在项目中有效地使用ViewPager,以及与它相关的知识点...

    ViewPager例子代码

    在这个“ViewPager例子代码”中,我们将深入探讨如何使用ViewPager来创建动态、交互丰富的应用界面。 首先,ViewPager本身并不包含具体的页面内容,而是依赖于适配器(Adapter)来提供页面数据。在Android中,通常...

    Android ViewPager实现圆点导航左右滑动和Fragment页面切换

    在我们的例子中,我们可以利用这个接口来更新圆点导航的状态,例如当页面切换时,对应的圆点应该被高亮。 6. **圆点导航**: 圆点导航通常是用小圆点表示`ViewPager`中的页面数量,当前页面对应的小圆点会被高亮。...

    Android中ViewPager+Fragment的使用(页卡式切换下方带滚动条)

    在Android应用开发中,`ViewPager` 和 `Fragment` 是两个非常关键的组件,它们常用于构建动态、可交互的用户界面。本篇文章将详细介绍如何在Android项目中结合使用`ViewPager`和`Fragment`来实现页卡式切换,并且在...

    android使用ViewPager实现轮播效果

    在这个例子中,ViewPager被定义在`FrameLayout`中,并设置了一个LinearLayout作为圆点指示器的容器。实际项目中,你可能还需要添加其他的视图元素,如标题、按钮等。 总结来说,要在Android中实现轮播效果,需要...

Global site tag (gtag.js) - Google Analytics