RadioButton 带下划线切换的案例

xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout    android:id="@+id/relOrder"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@color/White"    xmlns:android="http://schemas.android.com/apk/res/android">        <RadioGroup        android:id="@+id/rgTabTitle"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:paddingBottom="@dimen/text_padding_small"        android:paddingTop="@dimen/text_padding_small" >        <RadioButton            android:id="@+id/rbDoneOrder"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1.0"            android:checked="true"            android:button="@null"            android:gravity="center"            android:padding="0dp"            android:text="@string/order_done"            android:textColor="@drawable/sel_tab_text_color"            android:textSize="@dimen/content_text_size" />        <RadioButton            android:id="@+id/rbGoingOrder"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1.0"            android:button="@null"            android:gravity="center"            android:padding="0dp"            android:text="@string/order_going"            android:textColor="@drawable/sel_tab_text_color"            android:textSize="@dimen/content_text_size" />    </RadioGroup>        <LinearLayout        android:id="@+id/indicatorLayout"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@id/rgTabTitle"        android:orientation="horizontal"        android:weightSum="2" >        <View            android:id="@+id/indicatorView"            android:layout_width="0dp"            android:layout_height="@dimen/indicator_height"            android:layout_weight="1.0"            android:background="@color/bg_deep_color" />    </LinearLayout>        <View        android:id="@+id/line1"        android:layout_width="match_parent"        android:layout_height="@dimen/divider_line_width"        android:layout_below="@id/indicatorLayout"        android:background="@color/divider_line_color" />        <FrameLayout         android:id="@+id/frContractsHistory"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@id/line1"        android:layout_marginTop="0dp"        android:layout_marginRight="@dimen/outer_border_width"        android:layout_marginLeft="@dimen/outer_border_width"        android:background="@color/White" >            </FrameLayout></RelativeLayout>

code:

mIndicator = mRootView.findViewById(R.id.indicatorView);//underlneWindowManager wm = (WindowManager) context   //the the width of screen                .getSystemService(Context.WINDOW_SERVICE);        DisplayMetrics outMetrics = new DisplayMetrics();        wm.getDefaultDisplay().getMetrics(outMetrics);mIndicatorStepDistance  = outMetrics.widthPixels;mFm =getFragmentManager();        FragmentTransaction mFragmentTrans =mFm.beginTransaction();        mFragmentTrans.add(R.id.frContractsHistory, new OrderContractsLvFragment(R.layout.list_item_contract_done)).commit();        mRgTabs.setOnCheckedChangeListener(new OnCheckedChangeListener(){            @Override            public void onCheckedChanged(RadioGroup container, int checkedId) {                FragmentTransaction mFragmentTrans =mFm.beginTransaction();                TranslateAnimation anim = null;                switch(checkedId){                case R.id.rbDoneOrder:                    Toast.makeText(mContext, "done", Toast.LENGTH_LONG).show();    mFragmentTrans.replace(R.id.frContractsHistory,                 new OrderContractsLvFragment(R.layout.list_item_contract_done));        mFragmentTrans.commit();                    anim = new TranslateAnimation(mIndicatorStepDistance * mIndicatorPosition, 0, 0, 0);                    mIndicatorPosition = 0;                    break;                case R.id.rbGoingOrder:                    Toast.makeText(mContext, "going", Toast.LENGTH_LONG).show();    mFragmentTrans.replace(R.id.frContractsHistory,                             new OrderContractsLvFragment(R.layout.list_item_contract_ongoing));                    mFragmentTrans.commit();                                        anim = new TranslateAnimation(mIndicatorStepDistance * mIndicatorPosition, mIndicatorStepDistance, 0, 0);                    mIndicatorPosition = 1;                    break;                }                if (anim != null) {                    anim.setDuration(300);                    anim.setFillAfter(true);                    mIndicator.startAnimation(anim);                }            }        }); 

更多相关文章

  1. Android手电筒案例
  2. 【Android】入门案例(二)——JDBC连接MySql数据库实现登录
  3. Android 热修复案例
  4. android 里使用Socket进行发送消息案例
  5. Android开发案例:Android中几种图像特效处理
  6. Android电子商务企业项目案例技术搜集
  7. Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒
  8. android案例
  9. 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解

随机推荐

  1. Android(安卓)混淆代码总结 和 Android(
  2. Android:SQLiteOpenHelper,SqliteDatabas
  3. android studio 打包报 MissingTranslati
  4. Android(安卓)自定义控件属性,自定义Dialo
  5. Android--stetho使用介绍
  6. Android(安卓)Studio 各种异常处理
  7. Android中动画的详细讲解
  8. Android(安卓)手写动画框架
  9. Android工程import进workspace常见问题
  10. Android系统中的.apk文件和dex文件