• 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);//underlne
    WindowManager 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);
                    }
                }
            }); 
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/lovemo1314/p/4474465.html
Copyright © 2020-2023  润新知