示例效果如下:
代码如下:
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; } }