亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android使用viewpager計算偏移量實現選項卡功能

2019-10-21 21:32:15
字體:
來源:轉載
供稿:網友

本文實例為大家分享了android實現選項卡功能,通過計算偏移量,設置tetxview和imageView的對應值,一些color的值讀者自己去補充

實現效果圖:

android,viewpager,偏移量,選項卡

(1)簡單寫一個主界面的布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="true" android:fitsSystemWindows="true" android:background="@color/bg_color"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bag_gray" android:orientation="vertical"> <LinearLayout  android:layout_width="match_parent"  android:layout_height="36dp"  android:background="@android:color/white"  android:orientation="horizontal"  android:weightSum="3">  <TextView  android:id="@+id/tab1_tv"  android:layout_width="0dp"  android:layout_height="wrap_content"  android:layout_gravity="center"  android:layout_weight="1"  android:gravity="center"  android:text="商品"  android:textColor="@color/title_bag"  android:textSize="18sp" />  <TextView  android:id="@+id/tab2_tv"  android:layout_width="0dp"  android:layout_height="wrap_content"  android:layout_gravity="center"  android:layout_weight="1"  android:gravity="center"  android:text="評價"  android:textColor="@color/text_color_context"  android:textSize="18sp" />  <TextView  android:id="@+id/tab3_tv"  android:layout_width="0dp"  android:layout_height="wrap_content"  android:layout_gravity="center"  android:layout_weight="1"  android:gravity="center"  android:text="詳情"  android:textColor="@color/text_color_context"  android:textSize="18sp" /> </LinearLayout> <View  android:layout_width="match_parent"  android:layout_height="0.5dp"  android:background="@color/text_color_context" /> <View  android:id="@+id/cursor"  android:layout_width="50dp"  android:layout_height="2dp"  android:layout_marginLeft="40dp"  android:layout_marginTop="0dip"  android:background="@color/title_bag"  /> <android.support.v4.view.ViewPager  android:id="@+id/thire_vp"  android:layout_width="match_parent"  android:layout_height="match_parent"/> </LinearLayout></LinearLayout>

(2)設置viewpager的適配器:FragmentAdapter

public class FragmentAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> list; FragmentManager fm; public FragmentAdapter(FragmentManager fm, ArrayList<Fragment> list){ super(fm); this.fm = fm; this.list = list; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); }}

(3)然后設置三個fragment,因為有三個選項卡,所以我們新建三個fragment,分別是OneFragment、TwoFragment 、ThreeFragment ,布局的話也需要新建三個,跟fragment一一對應,因為布局過于簡單,這里就不寫了,簡單寫一點fragment的代碼吧

public class OneFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_one,null); return view; }}

(4)在MainActivity中,設置fragment的適配器,設置顯示內容,并且做viewpager的事件監聽

public class MainActivity extends FragmentActivity implements ViewPager.OnPageChangeListener,View.OnClickListener{ private TextView tab1Tv; private TextView tab2Tv; private TextView tab3Tv; private View cursor; private ViewPager thirdVp; private ArrayList<Fragment> fragmentlist; private int offset = 0; private int screenWidth = 0; private int screenl_3; private LinearLayout.LayoutParams lp; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_product); //綁定控件 tab1Tv = (TextView)findViewById(R.id.tab1_tv); tab2Tv = (TextView)findViewById(R.id.tab2_tv); tab3Tv = (TextView)findViewById(R.id.tab3_tv); cursor = (View) findViewById(R.id.cursor); thirdVp = (ViewPager) findViewById(R.id.thire_vp); //獲取屏幕寬度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); screenWidth = dm.widthPixels; screenl_3 = screenWidth/3; //裁剪3分之1 lp = (LinearLayout.LayoutParams)cursor.getLayoutParams(); fragmentlist = new ArrayList<>(); fragmentlist.add(new OneFragment()); fragmentlist.add(new TwoFragment()); fragmentlist.add(new ThreeFragment()); thirdVp.setAdapter(new FragmentAdapter(getSupportFragmentManager(),fragmentlist)); thirdVp.setCurrentItem(0); thirdVp.setOffscreenPageLimit(2); thirdVp.setOnPageChangeListener(this); tab1Tv.setOnClickListener(this); tab2Tv.setOnClickListener(this); tab3Tv.setOnClickListener(this); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { offset = (screenl_3-cursor.getLayoutParams().width)/2; Log.d("TAG", "111----"+position + "--" + positionOffset + "--"  + positionOffsetPixels); final float scale = getResources().getDisplayMetrics().density; if (position == 0){  lp.leftMargin = (int)(positionOffsetPixels/3)+offset; }else if(position ==1){  lp.leftMargin = (int)(positionOffsetPixels/3)+screenl_3+offset; } cursor.setLayoutParams(lp); upTextcolor(position); } private void upTextcolor(int position){ if (position==0){  tab1Tv.setTextColor(getResources().getColor(R.color.title_bag));  tab2Tv.setTextColor(getResources().getColor(R.color.text_color_context));  tab3Tv.setTextColor(getResources().getColor(R.color.text_color_context)); }else if(position==1){  tab1Tv.setTextColor(getResources().getColor(R.color.text_color_context));  tab2Tv.setTextColor(getResources().getColor(R.color.title_bag));  tab3Tv.setTextColor(getResources().getColor(R.color.text_color_context)); }else if(position==2){  tab1Tv.setTextColor(getResources().getColor(R.color.text_color_context));  tab2Tv.setTextColor(getResources().getColor(R.color.text_color_context));  tab3Tv.setTextColor(getResources().getColor(R.color.title_bag)); } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } @Override public void onClick(View view) { switch (view.getId()) {  case R.id.tab1_tv:  thirdVp.setCurrentItem(0);  break;  case R.id.tab2_tv:  thirdVp.setCurrentItem(1);  break;  case R.id.tab3_tv:  thirdVp.setCurrentItem(2);  break; } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品稀缺呦系列在线| 日韩欧美中文字幕在线观看| 日韩美女毛茸茸| 亚洲女人被黑人巨大进入| 国产精品wwww| 亚洲男女性事视频| 中文字幕少妇一区二区三区| 亚洲视频在线播放| 国产精品va在线播放| 欧美精品九九久久| 亚洲第一精品电影| 久久久成人精品| 亚洲美女在线观看| 久久九九精品99国产精品| 亚洲黄色av女优在线观看| 亚洲香蕉在线观看| 亚洲精品97久久| 亚洲一区二区三区毛片| 国产精品电影网| 亚洲色图色老头| 国产在线播放不卡| 精品久久久久久中文字幕大豆网| 欧美在线视频网| 精品成人乱色一区二区| 国产精品热视频| 国产精品视频成人| 亚洲国产精品久久91精品| 欧美性视频精品| 国产精品偷伦视频免费观看国产| 日本一区二区三区四区视频| 在线视频免费一区二区| 性色av一区二区三区在线观看| 51精品国产黑色丝袜高跟鞋| 久久av在线播放| 日韩精品日韩在线观看| 亚洲国产精品va在线| 日韩激情av在线播放| 国产精品白嫩美女在线观看| 国内精品久久久久影院 日本资源| 国产精品国内视频| 性色av一区二区三区免费| 中日韩美女免费视频网站在线观看| 日韩黄色av网站| 日韩高清av在线| 国产精品白丝jk喷水视频一区| 欧美小视频在线观看| 中文字幕欧美日韩va免费视频| 欧美一区二区.| 亚洲综合色激情五月| 日韩激情片免费| 欧美区在线播放| 国产主播在线一区| 国产精品手机播放| 色妞欧美日韩在线| 91在线免费网站| 欧美激情精品久久久久久免费印度| 亚洲欧美综合v| 日本一欧美一欧美一亚洲视频| 国产在线一区二区三区| 亚洲美女在线观看| 色婷婷综合久久久久中文字幕1| 亚洲性xxxx| 日韩高清不卡av| 欧美亚洲伦理www| 国产精品电影一区| 国产视频久久网| 日韩欧美综合在线视频| 中文字幕v亚洲ⅴv天堂| 日韩av在线网站| 91网站在线免费观看| 国产精品嫩草影院一区二区| 中文字幕不卡av| 欧美大全免费观看电视剧大泉洋| 国产一区二区三区视频免费| 亚洲国产成人精品电影| 最新国产精品拍自在线播放| 国产裸体写真av一区二区| 欧美性极品xxxx娇小| 日韩美女免费线视频| 国产一区二区精品丝袜| 最近中文字幕mv在线一区二区三区四区| 久久精品视频一| 日韩69视频在线观看| 日韩在线观看精品| 国外色69视频在线观看| 国产精品久久久久久久一区探花| 国产精品一区二区av影院萌芽| 久久久久一本一区二区青青蜜月| 欧美在线视频一二三| 久久久国产精品一区| 国外成人在线播放| 亚洲精品久久久久中文字幕二区| 久久久视频精品| 欧美日韩国产页| 欧美猛男性生活免费| 性欧美视频videos6一9| 亚洲xxx自由成熟| 久久国产精品影片| 国产亚洲精品美女| 欧洲精品毛片网站| 中文字幕欧美日韩va免费视频| 成人在线视频网站| 亚洲男人的天堂在线| 国产精品久久久久久久久久久新郎| 久久久精品欧美| 亚洲美女动态图120秒| 国产欧亚日韩视频| 国产精品欧美一区二区| 久久在线视频在线| 国产欧美精品久久久| 国产伦精品免费视频| 国产精品视频成人| 亚洲在线观看视频网站| 欧美特级www| 欧洲成人午夜免费大片| 亚洲一区二区中文| 在线视频免费一区二区| 国产精品美女无圣光视频| 日本亚洲欧洲色| 亚洲精品电影网站| 国产精品自产拍在线观看中文| 91精品视频在线播放| 久久夜色精品国产| 欧美亚洲午夜视频在线观看| 欧美日韩精品在线播放| 日本久久久久久久久久久| 夜夜躁日日躁狠狠久久88av| 国产精品网站入口| 国产精品久久久久久久av大片| 久久精品国产免费观看| 国产成人精品免高潮费视频| 亚洲精品日韩久久久| 97国产成人精品视频| 色综合色综合网色综合| 欧美日本中文字幕| 日韩欧美亚洲国产一区| 亚洲欧美日韩中文视频| 精品亚洲精品福利线在观看| 日韩中文在线不卡| 亚洲欧洲第一视频| 久青草国产97香蕉在线视频| 国产日本欧美在线观看| 欧美国产精品日韩| 精品国产成人av| 黄色成人av在线| 国产精品av在线| 亚洲精品国产品国语在线| 伊人久久久久久久久久| 中文字幕免费精品一区高清| 91精品国产色综合久久不卡98口| 久久精品国产久精国产一老狼| 亚洲精品黄网在线观看| 国产综合福利在线| 国产精品久久久久久av下载红粉| 久久影视电视剧凤归四时歌| 91成人国产在线观看| 国产精品啪视频| 亚洲最大成人免费视频| 97成人精品区在线播放| 久久精品国产v日韩v亚洲| 欧美国产亚洲精品久久久8v| 日韩在线观看av| 久久艳片www.17c.com| 国产极品精品在线观看|