示例效果如下:
代码如下:
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; } }
相关推荐
ButtonMenuDemo是一个简单的例子,展示了如何在ViewPager中展示一系列的按钮菜单。每个菜单项是一个单独的页面,用户可以通过滑动来切换。为了实现这个功能,我们可以按照以下步骤操作: - 创建一个`PagerAdapter...
在这个“xamarin android viewpager例子”中,我们将探讨ViewPager的基本用法以及如何结合PageTabStrip和PageTitleStrip进行更高级的应用。 **ViewPager基本用法** ViewPager本身不直接显示内容,而是依赖于适配器...
在这个例子中,我们创建一个`PagerAdapter`的子类,如`MyPagerAdapter`,继承自`FragmentStateAdapter`。`FragmentStateAdapter`会根据需要加载和销毁Fragment,以优化内存使用。 4. **实现PagerAdapter** 在`...
**ViewPager详解** ...综上所述,"ViewPager例子"展示了如何在Android应用中利用ViewPager实现图片浏览、双击跳转以及引导页功能。通过理解并实践这些知识点,开发者可以构建更加丰富、互动性强的Android应用。
总的来说,`Android viewpager+listview例子`是一个很好的实践项目,它涵盖了Android UI设计中的关键组件和交互方式。通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解...
简单的一个viewpager的例子,也是我学习过程中的一个例子,分享出来大家一起学习 代码的一些个说明: http://blog.csdn.net/cau_eric/article/details/50474663
标题"Android viewpager左右滑动效果的例子"直接点明了我们要讨论的主题,即如何在Android应用中实现类似微博的左右滑动界面。这种效果通常是通过`ViewPager`配合自定义适配器来完成的。在`ViewPager`中,我们可以...
在Android应用开发中,Tab和ViewPager的结合是创建多页导航界面的一种常见方式。这个例子主要探讨如何将这两个组件有效地整合在一起,为用户提供流畅的页面切换体验。在本篇文章中,我们将深入理解如何实现这一功能...
android ViewPager例子,简单明了
- 这个示例可能是一个展示如何在ViewPager中动态加载图片的例子。通常会包含一个自定义的PagerAdapter,以及与图片加载库的集成,如Glide或Picasso的使用。 - 示例代码会展示如何在用户滑动时触发图片的加载,以及...
在Android开发中,ViewPager是广泛使用的一个组件,它允许用户左右滑动切换页面,适用于创建引导页、图片浏览、幻灯片展示等多种场景。然而,当应用中使用ViewPager时,开发者常常会希望在界面上添加一些额外的元素...
在这个例子中,我们可能会创建一个名为`TestViewPagerAdapter`的类,继承自`FragmentPagerAdapter`: ```java public class TestViewPagerAdapter extends FragmentPagerAdapter { public TestViewPagerAdapter(@...
在这个例子中,我们有三个不同的页面要显示。通常,每个页面都是一个独立的Fragment,包含有自己的视图和逻辑。为了管理这些Fragment,我们可以创建一个PagerAdapter的子类,比如`FragmentPagerAdapter`或`...
在这个例子中,我们可以创建一个名为`ContentTitleFragmentPagerAdapter`的类: ```java public class ContentTitleFragmentPagerAdapter extends FragmentPagerAdapter { private String[] titles; private ...
在Android开发中,ViewPager是一个非常重要的组件,常用于创建滑动页面效果,特别是在实现选项卡切换功能时。这个压缩包“Android应用源码之Android ViewPager Fragment实现选项卡”提供了具体的示例代码,帮助...
在Android开发中,ViewPager是一个非常重要的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现类似轮播图、Tab切换等效果。在本文中,我们将深入探讨如何在项目中有效地使用ViewPager,以及与它相关的知识点...
在这个“ViewPager例子代码”中,我们将深入探讨如何使用ViewPager来创建动态、交互丰富的应用界面。 首先,ViewPager本身并不包含具体的页面内容,而是依赖于适配器(Adapter)来提供页面数据。在Android中,通常...
在我们的例子中,我们可以利用这个接口来更新圆点导航的状态,例如当页面切换时,对应的圆点应该被高亮。 6. **圆点导航**: 圆点导航通常是用小圆点表示`ViewPager`中的页面数量,当前页面对应的小圆点会被高亮。...
在Android应用开发中,`ViewPager` 和 `Fragment` 是两个非常关键的组件,它们常用于构建动态、可交互的用户界面。本篇文章将详细介绍如何在Android项目中结合使用`ViewPager`和`Fragment`来实现页卡式切换,并且在...
在这个例子中,ViewPager被定义在`FrameLayout`中,并设置了一个LinearLayout作为圆点指示器的容器。实际项目中,你可能还需要添加其他的视图元素,如标题、按钮等。 总结来说,要在Android中实现轮播效果,需要...