Android View之组合控件实例(二)_第1张图片

   <string-array name="bao_type">        <item>测试1</item>        <item>测试2</item>        <item>测试3</item>        <item>测试4</item>    </string-array>

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/gray_common_background"    android:orientation="vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <TextView            android:id="@+id/txt_viewpage_bar1"            style="@style/style_common_pagebar"            android:textColor="@color/theme_red" />        <TextView            android:id="@+id/txt_viewpage_bar2"            style="@style/style_common_pagebar" />        <TextView            android:id="@+id/txt_viewpage_bar3"            style="@style/style_common_pagebar" />        <TextView            android:id="@+id/txt_viewpage_bar4"            style="@style/style_common_pagebar" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <View            android:id="@+id/view_viewpage_bar1"            style="@style/style_common_pagebar_view" />        <View            android:id="@+id/view_viewpage_bar2"            style="@style/style_common_pagebar_view" />        <View            android:id="@+id/view_viewpage_bar3"            style="@style/style_common_pagebar_view" />        <View            android:id="@+id/view_viewpage_bar4"            style="@style/style_common_pagebar_view" />    </LinearLayout>    <android.support.v4.view.ViewPager        android:id="@+id/common_viewpage_buttom"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" /></LinearLayout>



  public interface SlbPageViewOnPageChangeListener {        void onPageSelected(int position);        void onPageScrollStateChanged(int state);    }

public class SlbPageViewBar extends LinearLayout {    private TextView[] mTotalTxtViews;    private View[] mTotalViews;    private List<TextView> mTxtViews;    private List<View> mViews;    private ViewPager mViewPager;    private SlbPageViewOnPageChangeListener mSlbPageViewOnPageChangeListener;    public SlbPageViewBar(Context context, AttributeSet attrs) {        super(context, attrs);        mTotalTxtViews = new TextView[4];        mTotalViews = new View[4];        mTxtViews = new ArrayList<>();        mViews = new ArrayList<>();        initView();    }    private void initView() {        View.inflate(getContext(), R.layout.layout_common_top_pageview_bar, this);        mViewPager = (ViewPager) findViewById(R.id.common_viewpage_buttom);        mTotalTxtViews[0] = (TextView) findViewById(R.id.txt_viewpage_bar1);        mTotalTxtViews[1] = (TextView) findViewById(R.id.txt_viewpage_bar2);        mTotalTxtViews[2] = (TextView) findViewById(R.id.txt_viewpage_bar3);        mTotalTxtViews[3] = (TextView) findViewById(R.id.txt_viewpage_bar4);        mTotalViews[0] = findViewById(R.id.view_viewpage_bar1);        mTotalViews[1] = findViewById(R.id.view_viewpage_bar2);        mTotalViews[2] = findViewById(R.id.view_viewpage_bar3);        mTotalViews[3] = findViewById(R.id.view_viewpage_bar4);    }    /**     * @param title 标题名称数组     */    public void setTitleView(String[] title) {        int legth = title.length > 4 ? 4 : title.length;        for (int i = 0; i < legth; i++) {            mTotalTxtViews[i].setText(title[i]);            mTotalTxtViews[i].setVisibility(View.VISIBLE);            mTotalViews[i].setVisibility(View.INVISIBLE);            mTotalTxtViews[i].setOnClickListener(new SlbTextViewOnLister(i));            mTxtViews.add(mTotalTxtViews[i]);            mViews.add(mTotalViews[i]);        }        mTotalViews[0].setVisibility(View.VISIBLE);        mViewPager.setOnPageChangeListener(mOnButtomPageChangeListener);    }    public ViewPager getViewPager(){        return mViewPager;    }    public void setSlbPageViewOnPageChangeListener(SlbPageViewOnPageChangeListener slbPageViewOnPageChangeListener) {        this.mSlbPageViewOnPageChangeListener = slbPageViewOnPageChangeListener;    }    private void changeViewBg(int textViewId, int viewId) {        for (View view : mViews) {            if (viewId == view.getId()) {                view.setVisibility(View.VISIBLE);            } else {                view.setVisibility(View.INVISIBLE);            }        }        for (TextView view : mTxtViews) {            if (textViewId == view.getId()) {                view.setTextColor(getResources().getColor(R.color.theme_red));            } else {                view.setTextColor(getResources().getColor(R.color.black_normal_text_33333));            }        }    }    class SlbTextViewOnLister implements OnClickListener {        private int mItem;        public SlbTextViewOnLister(int item) {            this.mItem = item;        }        @Override        public void onClick(View v) {            mViewPager.setCurrentItem(mItem);        }    }    private ViewPager.OnPageChangeListener mOnButtomPageChangeListener = new ViewPager.OnPageChangeListener() {        @Override        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {        }        @Override        public void onPageSelected(int position) {            switch (position) {                case 0:                    changeViewBg(R.id.txt_viewpage_bar1, R.id.view_viewpage_bar1);                    break;                case 1:                    changeViewBg(R.id.txt_viewpage_bar2, R.id.view_viewpage_bar2);                    break;                case 2:                    changeViewBg(R.id.txt_viewpage_bar3, R.id.view_viewpage_bar3);                    break;                case 3:                    changeViewBg(R.id.txt_viewpage_bar4, R.id.view_viewpage_bar4);                    break;            }            if (mSlbPageViewOnPageChangeListener != null)                mSlbPageViewOnPageChangeListener.onPageSelected(position);        }        @Override        public void onPageScrollStateChanged(int state) {            if (mSlbPageViewOnPageChangeListener != null)                mSlbPageViewOnPageChangeListener.onPageScrollStateChanged(state);        }    };}

public class CommonViewpageAdapter extends FragmentPagerAdapter {    private List<Fragment> mFragments;    private String [] mTitles;    public CommonViewpageAdapter(FragmentManager fm, List<Fragment> fragments, String [] titles) {        super(fm);        mFragments = fragments;        mTitles = titles;    }    @Override    public Fragment getItem(int position) {        return mFragments.get(position);    }    @Override    public int getCount() {        return mFragments.size();    }    @Override    public CharSequence getPageTitle(int position) {        return mTitles[position];    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        super.destroyItem(container, position, object);    }}


 <com.slfinance.app.slb.common.ui.view.SlbPageViewBar        android:id="@+id/slbpv_buy_huoqibao_SlbPageViewBarshow"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"/>



    private void initButtomPageFragment(SlbPageViewBar slbPageViewBar) {        List<Fragment> fragmentList = new ArrayList<>();        Test1Fragment test1Fragment = new Test1Fragment();        Test2Fragment test2Fragment = new Test2Fragment();        Test3Fragment test3Fragment = new Test3Fragment();        Test4Fragment test4Fragment = new Test4Fragment();        fragmentList.add(test1Fragment);        fragmentList.add(test2Fragment);        fragmentList.add(test3Fragment);        fragmentList.add(test4Fragment);        String[] titles = getResources().getStringArray(R.array.buy_huoqi_bao_zanquan_detail);        slbPageViewBar.setTitleView(titles);        CommonViewpageAdapter viewPagerAdapter = new CommonViewpageAdapter(                getSupportFragmentManager(), fragmentList, titles);        mButtomPageView.setAdapter(viewPagerAdapter);        mButtomPageView.setOffscreenPageLimit(3);        mButtomPageView.setCurrentItem(0);    }



更多相关文章

  1. Android下的SQLite数据库的相关操作及AndroidTestCase测试
  2. android 自动化测试 monkey
  3. android下tcp之client测试
  4. android:taskAffinity属性的简单测试
  5. qq android 软件 测试结果
  6. [Traceview]android性能测试
  7. 【Android单元测试系列】真正的异步单元测试

随机推荐

  1. Android项目--团购类客户端
  2. 【安卓学习笔记】Android Studio第9课—
  3. Android上用Jackson Json解析json
  4. Android 开发之旅:又见Hello World!
  5. Android(安卓)源码本地编译脚本 & 编译An
  6. Android的一些安装
  7. androidx升级注意事项
  8. 低版本android project在高版本ADK中运行
  9. android 截取验证码的两种实现方式
  10. 创建Android(安卓)虚拟机AVD(Android(安卓